0

プログラムで追加したカスタム セルに UIButton があります。

UIButton *tag = [[UIButton alloc] init];
[tag addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];

そして、これは私のボタンハンドラーです:

-(void)buttonClicked:(id)sender
{
    UIButton *clickedButton= (UIButton*)sender;
    NSLog(@"Button tapped!", nil);
    self.tagTapped = YES;
    self.tagSelected = clickedButton.titleLabel.text;
}

ボタン タップは登録されていますが、マスター ビュー コントローラーの didSelectRowAtIndexPath が呼び出されていません。セル内の他の場所をタップしても機能しますが、ボタンをタップしてもメソッドは呼び出されません。何か案は?

4

1 に答える 1

1

セル内の他の場所をタップしても機能しますが、ボタンをタップしてもメソッド (didSelectRowAtIndexPath) は呼び出されません。

それは設計によるものです。ほとんどの人は、UIButtons を使用して、ユーザーが行を選択したときとは異なることを行います。たとえば、Apple の電話アプリでボイスメールを閲覧している場合、行をタップすると Call Back & Delete ボタンが有効になり、行の青色の AccessoriesDetailDisclosureButton をタップすると、ボイスメールの日付と電話番号を示す新しい ViewController が表示されます。

于 2013-02-11T23:28:41.300 に答える