1

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


  }

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

4

2 回答 2

0

我不确定我是否理解您的设置,但如果这是我认为的那样,那么您不需要知道按钮是从哪个控制器按下的。即使 2 个控制器继承自一个共同的祖先,它们仍然是独立的实例,并且只有连接到该实例的 segue 才会被调用。因此,您的每个控制器都可以有一个具有相同标识符的 segue,比如说 button1Segue。那么 AncestorController 中的代码可能就是:

-(IBAction)firstButtonPressed:(UIButton *)sender{
    [self performSegueWithIdentifier:@"button1Segue" sender:self];
}

将执行正确的转场,因为无论按下哪个实例的按钮,只有该实例的转场才会执行。

于 2013-01-27T23:50:18.727 回答
0

如果您要在界面构建器中为每个视图设置不同的标签,您可以使用以下内容

if (self.view.tag == 1) {
    NSLog(@"something");
}

我在我的应用程序中成功地使用了这种方法来获取不同的视图,并且效果很好。

于 2013-01-27T21:53:29.197 回答