我正在使用XCode 4.2故事板。 最初我在一个嵌入在导航控制器中的UIViewController上有一个固定到UIButton的Popover Segue,一切都很顺利。
现在我需要在执行segue之前添加条件行为,所以我做了以下事情:
[self performSegueWithIdentifier:@"mySegue" sender:self]
应用程序通过prepareForSegue,然后它会抛出SIGABRT并记录以下内容
\*** Assertion failure in -[UIStoryboardPopoverSegue perform], /SourceCache/UIKit_Sim/UIKit-1912.3/UIStoryboardPopoverSegue.m:27
有什么想法吗?我有其他这种工作正常推送segues的情况。这是一个我一直听到参考的行为不端的邮件吗?
答案 0 :(得分:10)
也许有点晚了:
锚定义了要显示的弹出窗口的起点,并且未连接到动作。必须设置。
因此,当您想以编程方式调用popover segue时,您必须分两步完成:
<强> 1。将Segue连接到ViewController 您只需从应执行segue的ViewController拖动到目标ViewController并选择Popover。
<强> 2。定义标识符这是调用代码执行segue所必需的
第3。连接锚点您可以将锚点拖动到要从中开始使用弹出窗口的对象。在下图中,它是一个BarButtonItem。注意:这不会自动执行segue! (这样您还可以执行一些连接到BarButtonItem的操作)
<强> 4。从您的代码中调用segue
[self performSegueWithIdentifier:@"yourIdentifier" sender:sender];