有谁知道使用Xcode 4.5编辑情节提要时新的“退出”图标的用途是什么?


100

右键单击“退出”图标将产生一个空窗口。无法Ctrl拖动到任何IB元素或相应源文件的连接。文件不给爱。不会出现在笔尖文件中,只会出现在情节提要中。我以为这是固执的必然结果,但我看不到有任何新方法可以支持它。任何人?



Answers:


104

WWDC视频“ Session 407-在您的应用程序中使用情节提要”中有很多信息。

假设您有两个通过segue链接的视图控制器。在第一个视图控制器上实现以下退出操作:

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

然后,在第二个视图控制器的Storyboard场景上,按住Ctrl键并将其从UI元素(例如按钮)拖动到该视图控制器底部的退出图标。在done:您添加到第一控制器的代码操作将作为选项出现。现在,激活您按住Ctrl键并拖动到退出图标的按钮,将弹出回到第一个视图控制器并保持其原始状态(即,UI元素,如文本输入,应该保持原样)。


3
它实际上退回到视图控制器(及其视图)的完全相同的实例。
乔恩·赫斯

谢谢,我正在阅读本文,只是为了了解“绿色出口”的含义,只是发现它可以为我解决问题。我有2个由TabBar控制器和导航控制器分隔的视图控制器,“ Pop”无法向后返回。这花了2分钟,一切都按照您所说的进行了!谢谢!
user589642

Done在退出视图A之前,如何在视图B的类中的按钮上调用操作方法?
专家

如果您观看WWDC视频,则可以跳到37:15观看有关“解开segues”的部分
moliveira 2015年

220

我很难接受公认的答案,因此这里有更多详细信息。

给定下面视图控制器C上的照片,您可以“退出”回到segue路径中的任何视图控制器。

在此处输入图片说明

您可以编写ViewController A

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

您可以编写ViewController B

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController C您控制从“后退”按钮拖动到绿色退出选项并选择返回: ViewController C您控制从“已完成”按钮拖动到绿色退出选项并选择完成: 在此处输入图片说明

注意:即使这些方法在其他视图控制器上,它们也会在ViewController C的出口处显示。控件的拖动和选择方法定义了要展开到的ViewController。


2
还有一点需要注意:有时即使完成所有步骤,绿色退出按钮也不会处于活动状态。在这种情况下,重新打开情节提要板(或xcode项目)可使它按预期工作。
zxcat

3
我遇到的另一个问题是,我没有将展开的segue方法签名放在.h文件或类扩展名中。添加完后,弹出窗口中会出现放松的提示。
Steve Moser 2013年

2
+ Infinity forEven though the methods are on other view controllers they show up for the ViewController C's exit.
圣诞老人

15

除了埃里克(Eric)的答案之外,这是它如何与

您添加到目标控制器的函数如下所示:

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.