0

私はiOSと目的のCから始めたばかりで、現在のアプリで達成しようとしていることの1つは、テーブルビューの行のIDと押されたボタンのIDに基づいてセグエを実行することです(これらナビゲーション バーの上部にあるボタンです)。私が混乱している理由は、通常、複数のボタンで何かをしたいときは、両方のボタンに IBAction があり、送信者タグを使用しているためです。ただし、この場合、私が本質的にやろうとしているのは、 (if indexPath.row ==0 && Identity of button press ==0) self performSEguewithIdentifier sender のようなものを用意すること
です。2番目の部分で何が起こるかわかりませんその if ステートメントについて、コードを教えていただけると助かります。

ありがとう

4

1 に答える 1

2

ユーザーが最初にボタンを押してから行を選択する必要がある場合、行がまだ選択されていないため、質問のような複合 if ステートメントを使用することはできません。これを行う 1 つの方法は、ボタン メソッドに (そのタグに基づいて) ivar に値を設定させ、それを didSelectRowAtIndexPath: でチェックインすることです。したがって、int ivar、buttonPressed がある場合、IBAction は次のようになります。

@implementation ViewController {
    int buttonPressed;
}

-(IBAction)buttonPressed:(UIButton *) sender {
    buttonPressed = sender.tag;
}

次に、didSelectRowAtIndexPath メソッドで次のようにします。

-(NSIndexPath *)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if(buttonPressed == 1) {
        // do something with indexPath.row info
        // perform whichever segue
    }else if (buttonPressed == 2) {
       // do something with indexPath.row info
        // perform whichever segue
    }
}
于 2013-01-22T17:17:12.690 に答える