如何执行segue

chi*_*zle 20 iphone xcode storyboard ios

我想实现一个按钮来显示另一个视图.我在Storyboard中定义了目标ViewController并创建了一个segue(类型为push)并为其提供了一个标识符.

在我的根视图控制器中

一些方法......

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        [btn addTarget:self action:@selector(showDetailView:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

- (IBAction)showDetailView:(id)sender {
    [self performSegueWithIdentifier:@"ShowDetail" sender:sender];
}
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情.我听说Segue是一个对象.我是否需要在我的根视图控制器类中引用它/合成它?任何提示将不胜感激.谢谢.

Mar*_*ich 30

编辑:
确保您的根视图控制器嵌入在导航控制器中.如果不是,请在情节提要设计器中选择视图控制器,然后在菜单中选择编辑器 - >嵌入 - >导航控制器.

原文:
仔细检查标识符(故事板代码)并尝试设置senderself.如果这不起作用,您可以在代码中自己创建一个Segue对象.

  • 你是否在导航控制器中嵌入了你的根视图控制器?这是一个"推"工作所需要的... (6认同)
  • 在你的2'nd视图控制器中的viewWillAppear中执行相反的操作 (4认同)
  • 在`viewWillAppear:`方法中设置`self.navigationController.navigationBarHidden = YES;` (3认同)