100

右键单击退出图标会产生一个空窗口。无法按住 Ctrl 并拖动连接到任何 IB 元素或相应的源文件。医生没有爱。不会出现在 nib 文件中,只会出现在故事​​板中。我的假设是它是 segues 的必然结果,但我没有看到任何新的方法来支持它。任何人?

4

3 回答 3

222

我很难遵循接受的答案,所以这里有更多细节。

鉴于下面视图控制器 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。

于 2012-11-18T02:59:01.597 回答
104

WWDC 视频“Session 407 - Adopting Storyboards in your App”中有很多信息。

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

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

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

于 2012-09-25T00:50:15.903 回答
15

除了Eric的回答之外,这里还有它如何与一起工作:

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

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
于 2014-11-11T15:12:26.013 回答