全部, 我试图根据当前显示的视图控制器的身份执行segues。基本上,我已经提供了我的VC故事板ID,现在想要在代码中访问它们。所以,基本上我想要一些逻辑,如果现有的视图控制器是第一个,我想执行firstSegue,如果它是第二个,我想执行secondSegue,依此类推。此外,我的VC是导航控制器的一部分,我知道导航控制器有一个属性,我可以在其中查看当前的视图控制器或类似的东西。但我不确定它是什么。有人可以帮帮我吗?再次,我预见我的代码就像:
(IBAction)firstButtonPressed:(id)sender
{ if (presentviewcontroller ==a) // If the current view controller Is A
{
[self performSegueWithIdentifier:@"segueA" sender:self];}
if(storyboard.viewcontroller==b)//If the current view controller is B
{
[self.performSegueWithIdentifier:@"segueB" sender:self];}
}
有人可以帮我解决一些代码吗?
答案 0 :(得分:0)
如果要在界面构建器中为每个视图设置不同的标记,则可以使用以下
if (self.view.tag == 1) {
NSLog(@"something");
}
我在我的应用程序中成功地使用此方法获取不同的视图,并且效果很好。
答案 1 :(得分:0)
我不确定我理解你的设置,但如果它是我认为的那样,那么你不需要知道按钮按下了哪个控制器。即使2个控制器继承自共同的祖先,它们仍然是单独的实例,并且只会调用连接到该实例的segue。因此,每个控制器都可以有一个具有相同标识符的segue,比如说button1Segue。那么AncestorController中的代码就可以是:
-(IBAction)firstButtonPressed:(UIButton *)sender{
[self performSegueWithIdentifier:@"button1Segue" sender:self];
}
将执行正确的segue,因为无论按下哪个实例的按钮,只有该实例的segue将会运行。