0

可能重复:
在视图控制器之间传递变量

假设我有 3 个按钮ViewController(FirstController)与 1-3 的标签相同。所有三个按钮都打开了一个新的ViewController(SecondController). 但是我如何才能在 中SecondController检查按下了什么按钮才能到达这里,或者使用了什么 segue?因此,SecondController根据按下哪个按钮打开它,可以执行不同的操作。我可能在考虑开关和外壳。

4

2 回答 2

1

有两种可能的方法来做到这一点。

一种方法是为每个按钮分配一个唯一的 segue。在prepareForSegue:您识别按钮并将该信息提供给的方法上destinationViewController

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

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

另一种方法是创建一个property存储最后按下按钮的位置。

- (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.");
}

您可以在三个按钮操作之前发生的方法中放入类似的内容。这可能是 viewWillDisappear、prepareForSegue 等。

祝你好运!

于 2013-01-26T21:57:20.470 回答