Iphone 目的C-UIStepper反应

Iphone 目的C-UIStepper反应,iphone,objective-c,uiviewcontroller,delegates,Iphone,Objective C,Uiviewcontroller,Delegates,我试着问这个问题,但不知怎么的,我没能正确地表达自己,所以我把它删掉,重新开始 我有一个层次结构:-ViewController=>UIView=>Stepper 以下是我的UIView代码:- @implementation Controls @synthesize m_numColumn=_whatever; - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) {

我试着问这个问题,但不知怎么的,我没能正确地表达自己,所以我把它删掉,重新开始

我有一个层次结构:-ViewController=>UIView=>Stepper

以下是我的UIView代码:-

@implementation Controls
@synthesize m_numColumn=_whatever;
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        int i;
        m_numColumn= [[UIStepper alloc]init];
        m_numColumn.frame = CGRectMake(1, 1, 30, 30);
        m_numColumn.autorepeat= FALSE;
        [m_numColumn setValue:2];
        m_displayColumnNum= [[UILabel alloc]init];
        m_displayColumnNum.frame = CGRectMake(30, 30, 60, 30);
      //  m_displayColumnNum.backgroundColor =lgammaf(<#float#>);
       // m_displayColumnNum.text= [NSString stringWithFormat:@"aaaaaa"];
        i= m_numColumn.value;
        m_displayColumnNum.text= [NSString stringWithFormat:@"%d",i];
        [self addSubview:m_numColumn];
        [self addSubview:m_displayColumnNum];
     //   Controls.delegate = [m_numColumn.navigationController.viewControllers objectAtIndex:0];
        [m_numColumn addTarget:self  action:@selector(stepperChanged:) forControlEvents:UIControlEventTouchUpInside];
        //[m_numColumn setdelegate];


    }
    return self;
}

我想要的是在UIViewController(父对象)中对该事件做出反应。我该怎么做呢?

问题是您没有获得该活动?我一直将UIStepper与“UIControlEventValueChanged”一起使用,在您的情况下,它应该是:

[m_numColumn addTarget:self  action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];

您正在收听的controlEvents有一个要点,但目标也有一个问题

[m_numColumn addTarget:self  action:@selector(stepperChanged:) forControlEvents:UIControlEventTouchUpInside];

您不应该使用“self”,它是对视图的引用,而不是对视图控制器的引用,或者使用“myController”变量,或者在控制器中使用此方法作为旁白-不要使用匈牙利符号,这对于Objective-C开发人员来说真的很奇怪。苹果开发者网站上有一篇简短而有用的文章值得一读。。。我正在学习基础知识。。。然而。。。当我变得更有经验时,我会研究它。学习编写可读代码是基础。它可以帮助您阅读其他更有经验的人编写的代码。但是,这是你的选择。很好。我应该重新考虑一下…我很新,只是在学习,所以请慢一点:P我在控件对象中获取事件,但我希望以某种方式在父对象Ojbrect(ViewController)中获取它。我认为这就是代理的作用,但我不知道…您应该添加视图控制器作为目标:
[m_numColumn addTarget:parentViewController操作:@selector(stepperChanged:)forControlEvents:UIControlEventValueChanged];
对不起,我的帖子有点短…我知道目标错误,但我不知道如何正确使用“parentViewController”它不起作用…我知道那么多。我只是不知道如何将它指向我的viewController。我在viewController中实现了该方法,但我不知道如何调用它。我想我必须以某种方式给控制器一个指针(我想这里称为委托)
[m_numColumn addTarget:self  action:@selector(stepperChanged:) forControlEvents:UIControlEventTouchUpInside];