我可以从UIBarButtonItem触发segue吗?

时间:2011-11-23 16:01:21

标签: ios iphone uistoryboard uibarbuttonitem uistoryboardsegue

我在故事板的一个场景中有一个工具栏。工具栏包含单个UIBarButtonItem。我希望按钮上的Touch Down触发一个新的UIViewController的segue。如果我拖到viewController并从弹出窗口中选择“Modal”,则不会触发segue。永远不会调用'prepareForSegue'。在“引用Storyboard Segues”下的Utility面板中,Button的名称旁边有一个感叹号,并在翻转时显示以下内容:

  

'null'不是有效的控制器包含密钥路径。

如果我从按钮中拖出并从弹出窗口中选择“推送”,我就不会收到此警告,但是segue不再起作用,并且从不调用prepareForSegue。

如果我将任何类型的segue连接到UIButton(在工具栏之外),则segue在两种情况下都能正常工作。所以在我看来,当从工具栏项目触发时,Segues不起作用。

任何人都可以证实这一点或指出我做错了吗?

4 个答案:

答案 0 :(得分:20)

您可以使用

自行调用segue
[self performSegueWithIdentifier: @"SegueToScene1" sender: self];

答案 1 :(得分:4)

我认为您可能正在使用UIButton而不是UIBarButtonItem对象。我只是遇到了同样的问题,但我最初将一个标准按钮拖到工具栏上。当我改变它时,故事板segue按预期工作。

答案 2 :(得分:1)

我在示例项目中的UIToolbar中设置了一个由UIBarButtonItem触发的模态segue,它工作正常。

答案 3 :(得分:0)

通过使用push,它可以与UIBarButtonItem一起使用。 你是否在没有prepareForSegue测试的情况下,我的意思是,只需将它们链接到.storybar中? 它将转到链接的ViewController,没有代码行的事件