基于当前视图控制器的条件segue

时间:2013-01-27 21:35:36

标签: ios uibutton uistoryboard segue uistoryboardsegue

全部, 我试图根据当前显示的视图控制器的身份执行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];}


  }

有人可以帮我解决一些代码吗?

2 个答案:

答案 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将会运行。