打开窗口+来自其他视图控制器的视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开窗口+来自其他视图控制器的视图相关的知识,希望对你有一定的参考价值。

我有一个ViewControllerOne。 ViewControllerOne通过Ctrl-Drag(在故事板中)连接到菜单按钮mBtn(这意味着我不知道它是如何以编程方式实现的)。

单击此mBtn,将显示ViewOne(当前模态)。此ViewOne绑定到ViewControllerOne。 ViewOne有一个按钮btnOne。

点击btnOne我希望ViewOne被解雇,并显示ViewTwo。 ViewTwo属于ViewControllerTwo和WindowControllerTwo。

WindowControllerTwo-ViewControllerTwo-binding是在新项目上创建的标准案例。

我在ViewControllerOne中的按钮btnOne的IBAction中有以下代码:

@IBAction func onbtnOnePressed(sender: AnyObject){

        let m_WindowControllerTwo = NSStoryboard(name: NSStoryboard.Name(rawValue: "Main"), bundle: nil).instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("WindowControllerTwo")) as! NSWindowController // I have no custom class for the window controller as I don't really know what I can use it for ... 

        let m_ViewTwo = WindowControllerTwo.contentViewController as! ViewControllerTwo // my custom class for ViewTwo

        m_ViewTwo.attributeIWantToPassToThisView = self.x // an attribute I want to pass from view a to view b

        m_WindowControllerTwo.contentViewController = m_ViewTwo // passing the attribute from a to b

        m_WindowControllerTwo.showWindow(self) // this does not work

        self.dismiss(nil)  // see NOTE
    }

这段代码实际上不起作用。在逐步调试它时,我看到窗口/视图闪烁但没有出现......

注意:我可以将按钮btnOne与ctrl-drag连接到ViewControllerTwo。这有效。但是当前的ViewOne并没有被解雇!

问题:我在这里做错了什么?在ios swift中,这也有效。我没有得到WindowController的东西,所以我需要你的建议。

答案

而不是这个:m_WindowControllerTwo.showWindow(self)

使用:

let application = NSApplication.shared()
application.runModal(for: wordCountWindow) //this will present WindowControllerTwo modally.

然后关闭你现在的控制器添加这一行:PresentWindowControllerName.close()

以上是关于打开窗口+来自其他视图控制器的视图的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在共享扩展中打开全视图控制器,而不是弹出窗口(默认)

如何从片段内的列表视图打开链接网址?

无法替换图像视图,用于来自相机或画廊的图像(它不起作用)

Eclipse - 控制台视图在缺少的屏幕上

Android,从其他片段返回的空列表视图

如何使列表视图出现在片段中?