macOS、Swift 3:如何在转场后取回数据?

Max*_*vov 3 macos transfer segue swift swift3

例如:我有两个UIViewControllers。第一个有一个按钮和一个NSTextField,第二个NSTextField只有一个。

当我单击第一个控制器上的按钮时 - 第二个控制器显示为弹出窗口。

将一些数据从第一个控制器传输到第二个控制器没什么大不了的——我使用了 segue。但是我应该怎么做才能将数据传回——从弹出窗口到主窗口? 例如:我们打开弹出窗口,在 中输入一些文本NSTextField,我想NSTextField在第一个ViewController.

我找不到答案:-(

vad*_*ian 5

在 macOS 中,如果您使用故事板和转场,这很容易。

NSViewController有一个属性presenting,其中包含对父视图控制器的引用。

获取引用,调用父视图控制器中的一个方法来传递数据并关闭子视图控制器。

let firstViewController = presenting as! FirstViewController
firstViewController.passDataBack(data)
self.dismiss(self)
Run Code Online (Sandbox Code Playgroud)

  • Youtube 没有质量保证。任何人都可以上传东西;-) (2认同)