0

重複の可能性:
ビュー コントローラー間で変数を渡す

ViewController(FirstController)1〜3のタグが付いた同じボタンが3つあるとしましょう。3 つのボタンすべてが新しい を開きましたViewController(SecondController)。しかし、SecondControllerここに到達するためにどのボタンが押されたか、またはどのセグエが使用されたかを で確認するにはどうすればよいでしょうか? そのため、SecondControllerどのボタンを押して開くかによって、 の動作が異なります。スイッチとケースのことを考えていたのかもしれません。

4

2 に答える 2

1

これには 2 つの方法があります。

1 つの方法は、各ボタンに固有のセグエを割り当てることです。メソッドprepareForSegue:でボタンを識別し、その情報を に渡しますdestinationViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"Button1Segue"]) {
        [segue.destinationViewController setButton:1];
    }

    if ([segue.identifier isEqualToString:@"Button2Segue"]) {
    ...
}

propertyもう 1 つの方法は、最後に押されたボタンを保存する場所を作成することです。

- (IBAction)buttonTap:(id)sender {

    self.lastPressedButton = sender.tag;
}

そして、prepareForSegue:あなたは次のようにします:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"SecondControllerSegue"]) {
        [segue.destinationViewController setButton: self.lastPressedButton];
    }
}

それが役に立てば幸い

于 2013-01-26T22:37:32.010 に答える
0
if (button.tag == 0) {
   NSLog(@"Button one.");
} else if (button.tag == 1) {
   NSLog(@"Button two.");
}

3つのボタンを押す直前に発生するメソッドにこのようなものを入れます。それはviewWillDisappear、prepareForSegueなどである可能性があります。

頑張ってください!

于 2013-01-26T21:57:20.470 に答える