swift - macOS, swift 3 : How to get data back after segue?

标签 swift macos swift3 segue transfer

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

当我点击第一个 Controller 上的按钮时——第二个 Controller 显示为弹出窗口。

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

我找不到答案:-(

最佳答案

在 macOS 中,如果您使用 Storyboard和 segues,这将非常容易。

NSViewController 有一个属性 presenting 包含对父 View Controller 的引用。

获取引用,调用父 View Controller 中的方法传递数据并关闭 subview Controller 。

let firstViewController = presenting as! FirstViewController
firstViewController.passDataBack(data)
self.dismiss(self)

关于swift - macOS, swift 3 : How to get data back after segue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40481432/

相关文章:

ios - 无法在 Swift 3/iOS 10 中触发 continueUserActivity

c - Swift:访问作为对象的 C 结构成员

ios - Swift - 如何在释放调用者时从数组中正确删除 block ?

swift3 - Swift 3 - 类型 'Any?' 的值没有成员 'valueForKey'

macos - 有没有办法在 hidpi 模式下运行 genymotion?

objective-c - Xcode 6 在编译时自动添加不受支持的权利

ruby-on-rails - Mac OS X 上的 Postgres 权限被拒绝

swift - 在 Swift 的 TextView 中显示 JSON 数据

swift - Swift 中返回多个值的字符串

swift - 从核心数据中获取子总和