检测按下哪个按钮以打开此视图

时间:2013-01-26 21:51:35

标签: ios cocoa

  

可能重复:
  Passing variables between view controllers

假设我在同一个ViewController(FirstController)中有3个按钮,其中包含1-3个标签。所有三个按钮都打开了一个新的ViewController(SecondController)。但是我怎么能在SecondController中检查按下什么按钮才能到达这里,或者可能使用了什么segue?所以SecondController可以执行不同的操作,具体取决于按下哪个按钮来打开它。我可能正在考虑转换和案例。

2 个答案:

答案 0 :(得分: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];
    }
}

希望有所帮助

答案 1 :(得分:0)

if (button.tag == 0) {
   NSLog(@"Button one.");
} else if (button.tag == 1) {
   NSLog(@"Button two.");
}

你会在你的三个按钮动作之前发生的方法中加入这样的东西。这可能是viewWillDisappear,prepareForSegue等。

祝你好运!