gpt4 book ai didi

swift - 从其他 View Controller 打开窗口+ View

转载 作者:行者123 更新时间:2023-11-30 11:43:14 25 4
gpt4 key购买 nike

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

单击此 mBtn,将出现一个 ViewOne(当前模式)。这个ViewOne绑定(bind)到ViewControllerOne。 ViewOne 有一个按钮 btnOne。

单击 btnOne 我希望关闭 ViewOne 并显示 ViewTwo。 ViewTwo 属于 ViewControllerTwo 和 WindowControllerTwo。

WindowControllerTwo-ViewControllerTwo 绑定(bind)是在新项目上创建的标准情况。

我在 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
}

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

注意:我可以通过按住 Ctrl 拖动的方式将按钮 btnOne 连接到 ViewControllerTwo。这有效。但当前的 ViewOne 不会被解雇!

问题:我在这里做错了什么?在 iOS swift 中这也有效。我不太了解 WindowController 的内容,因此我需要您的建议。

最佳答案

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

使用:

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

然后要关闭当前的 Controller ,请添加以下行:PresentWindowControllerName.close()

关于swift - 从其他 View Controller 打开窗口+ View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49110667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com