从ViewController Mac OS将数据传递到AppDelegate

时间:2018-12-18 01:43:53

标签: swift macos

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

    let navController = window!.contentViewController as! NSWindowController

    let SettingsController = navController.contentViewController as! SettingsViewController

    var list = itemsController.l

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

        var window: NSWindow?

很抱歉,如果这不是很合理,因为英语不是我的母语。

1 个答案:

答案 0 :(得分:0)

首先,您的意思是:

let itemsController = navController.contentViewController as! SettingsViewController

第二,如果您尝试访问AppDelegate,则应调用:

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

获取AppDelegate。然后,您可以通过以下方式获得所需的窗口:

window = appDelegate.window

我认为这就是您想要的。