小编cob*_*obb的帖子

在与当前窗口/视图控制器不同的窗口/视图控制器中执行代码

我在 Xcode 6 中使用下面的这段代码,用于我正在使用 apple swift 为 OSx 构建的项目。我没有在这里看到的常用 .m 和 .h 文件。它是一个带有 AppDelegate.swift 和每个窗口的类文件的故事板。

下面的代码从 OS X 应用程序的主窗口打开一个附加窗口以显示视频。如何存储对新窗口对象的引用并使用它从当前窗口执行新窗口内的函数?我正在尝试在原始视图控制器/窗口中创建播放控件来控制新窗口中包含的视频。我知道不同的窗口是不同类的不同实例,但我仍然试图掌握它们如何实时相互交谈,而不是我见过的大多数示例,其中一个视图控制器将信息传递给另一个视图控制器包含在同一个窗口中。

谢谢你的帮助!

更新:

建议的答案在最初打开窗口的函数内起作用。但是,我无法在不同的函数中访问该方法。我尝试在函数范围之外声明变量,但我无法访问其他 ViewController 中的方法

 class ViewController: NSViewController {

     var MainVideoControllerWindow: NSWindowController?
     var MainVideoController: NSViewController?

     @IBAction func openPanel(sender: AnyObject) {

         if (MainVideoControllerWindow == nil) {

             //THIS SECTION WORKS PERFECTLY
             let storyboard = NSStoryboard(name: "Main", bundle: nil)
             MainVideoControllerWindow = storyboard?.instantiateControllerWithIdentifier("MainVideo") as? NSWindowController
             MainVideoControllerWindow!.showWindow(sender)

             //THIS LINE WORKS AS SUGGESTED
             let MainVideoController = MainVideoControllerWindow!.window?.contentViewController as MainVideo

             //I CAN ACCESS THIS METHOD CONTAINED IN OTHER …
Run Code Online (Sandbox Code Playgroud)

macos swift

6
推荐指数
1
解决办法
2382
查看次数

标签 统计

macos ×1

swift ×1