可能重复:
在视图控制器之间传递变量
假设我有 3 个按钮ViewController(FirstController)
与 1-3 的标签相同。所有三个按钮都打开了一个新的ViewController(SecondController)
. 但是我如何才能在 中SecondController
检查按下了什么按钮才能到达这里,或者使用了什么 segue?因此,SecondController
根据按下哪个按钮打开它,可以执行不同的操作。我可能在考虑开关和外壳。
可能重复:
在视图控制器之间传递变量
假设我有 3 个按钮ViewController(FirstController)
与 1-3 的标签相同。所有三个按钮都打开了一个新的ViewController(SecondController)
. 但是我如何才能在 中SecondController
检查按下了什么按钮才能到达这里,或者使用了什么 segue?因此,SecondController
根据按下哪个按钮打开它,可以执行不同的操作。我可能在考虑开关和外壳。
有两种可能的方法来做到这一点。
一种方法是为每个按钮分配一个唯一的 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];
}
}
希望能帮助到你
if (button.tag == 0) {
NSLog(@"Button one.");
} else if (button.tag == 1) {
NSLog(@"Button two.");
}
您可以在三个按钮操作之前发生的方法中放入类似的内容。这可能是 viewWillDisappear、prepareForSegue 等。
祝你好运!