一尘不染

Swift:带有导航控制器的prepareForSegue

swift

我正在用Swift开发iOS应用程序。

我想使用prepareForSegue函数将数据从视图发送到另一个视图。

但是,我的目标视图之前是导航控制器,因此它不起作用。

请问我该怎么做?


阅读 236

收藏
2020-07-07

共1个答案

一尘不染

prepareForSegue访问目标导航控制器,然后在其顶部:

let destinationNavigationController = segue.destination as! UINavigationController
let targetController = destinationNavigationController.topViewController

您可以从目标控制器访问其视图并传递数据。

在旧版本(现在已过时)的Swift和UIKit版本中,代码略有不同:

let destinationNavigationController = segue.destinationViewController as UINavigationController
let targetController = destinationNavigationController.topViewController
2020-07-07