首页 > 解决方案 > Cocoa 从 AppDelegate 快速加载 ViewController 和故事板视图

问题描述

我创建了一个SideBar()类,它创建了一个NSView带有各种按钮的类。

sideBar()AppDelegate通过做实例化我的

func applicationDidFinishLaunching(_ notification: Notification) {
    sideBarView.setupSideBarView()
    sideBarView.menuButton.action = #selector(self.NewMenuButton(_:))

}
@objc func NewMenuButton(_ sender: NSButton) {

}

在我的初始 ViewController 中,我sideBar以以下方式呈现我的:

view.addSubview(sideBarView.getView())

通过按下 menuButton,我希望 App Delegate 中的函数能够加载并使用其 ViewController 呈现一个新的故事板视图。

这可以做到吗?谢谢。

标签: swiftcocoa

解决方案


我解决了为我的第二个 ViewController 提供故事板 ID 的问题。然后,通过 AppDelegate 函数:

 let storyboard = NSStoryboard(name: NSStoryboard.Name("Main"), bundle: Bundle.main)
 let mainPageController = storyboard.instantiateController(withIdentifier: "test") as! SecondViewController
 NSApplication.shared.mainWindow?.contentViewController = mainPageController

推荐阅读