首页 > 解决方案 > 从 ViewController Mac OS 向 AppDelegate 传递数据

问题描述

我一直在尝试将数据从视图控制器传递到 AppDelegate 文件,但没有运气。我想访问视图控制器中的变量 l 。我一直在使用的代码如下:

    let navController = window!.contentViewController as! NSWindowController

    let SettingsController = navController.contentViewController as! SettingsViewController

    var list = itemsController.l

显然这不起作用并产生运行时错误。顺便说一句,我正在使用

        var window: NSWindow?

对不起,如果这没有意义,因为英语不是我的第一语言。

标签: swiftmacos

解决方案


首先,你的意思是:

let itemsController = navController.contentViewController as! SettingsViewController

其次,如果您尝试访问 AppDelegate,您应该调用:

guard let appDelegate = NSApplication.shared.delegate as? AppDelegate else {
     return
} 

获取 AppDelegate。然后您可以通过以下方式获取您正在寻找的窗口:

window = appDelegate.window

我想这就是你要找的。


推荐阅读