0

この質問をしようとしたのですが、どういうわけかうまく表現できなかったので、削除してやり直しました。

私は階層を持っています:- 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;
}

ここで重要な行は次のとおりです。

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

私が望むのは、UIViewController (親オブジェクト) でそのイベントに反応することです。それ、どうやったら出来るの?

4

2 に答える 2

2

イベントが届かないのが問題ですか?私は常に「UIControlEventValueChanged」でUIStepperを使用してきましたが、あなたの場合は次のようになります。

[m_numColumn addTarget:self  action:@selector(stepperChanged:) forControlEvents:UIControlEventValueChanged];
于 2013-03-07T14:18:04.403 に答える
0

リッスンしているcontrolEventsのポイントはありますが、ターゲットにも問題があります

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

ビューコントローラーではなくビューへの参照である「self」を使用しないでください。「myController」変数を使用するか、コントローラー内でこのメソッドを実行してください。

于 2013-03-07T14:42:39.817 に答える