gpt4 book ai didi

swift - 在我的 mac 应用程序中添加自定义 View Controller 作为 Root View Controller ?

转载 作者:行者123 更新时间:2023-11-28 15:21:08 24 4
gpt4 key购买 nike

我已经检查了这个问题的大部分答案,但大部分是针对 Cocoa Touch 的。我需要在我的 mac 应用程序的 appdelegate 中实现它。

一旦用户登录,他将被重定向到主屏幕,否则转到登录屏幕。

let controller:NSWindowController = NSWindowController()
let viewController:NSViewController

let storyboard = NSStoryboard.init(name: "Main", bundle: nil)
let stringLoginStatus = NSUserDefaults.standardUserDefaults().objectForKey(Constants.Key_LoginStatus) as? String
if stringLoginStatus != nil
{
if stringLoginStatus == "true"
{
viewController = storyboard.instantiateControllerWithIdentifier("Channel") as! NSViewController
}
else{
viewController = storyboard.instantiateControllerWithIdentifier("ViewController") as! NSViewController
}
}
else{
viewController = storyboard.instantiateControllerWithIdentifier("ViewController") as! NSViewController
}

controller.window?.contentViewController = viewController
controller.window?.makeKeyAndOrderFront(self)

它显示错误,因为 Controller 没有被初始化。

最佳答案

试试这段代码来改变你的 View Controller :-

UIApplication.appWindow.rootViewController = UIStoryboard.main.instantiateViewController(withIdentifier: "customViewControl")

//MARK: 使 UIApplication 扩展来获取 appWindow

    extension UIApplication {
class var appWindow: UIWindow! {
return (UIApplication.shared.delegate?.window!)!
}
}

//MARK: 制作 Storyboard扩展以获取主屏幕

extension UIStoryboard {
class var main: UIStoryboard {
let storyboardName: String = Bundle.main.object(forInfoDictionaryKey: "UIMainStoryboardFile") as! String
return UIStoryboard(name: storyboardName, bundle: nil)
}

关于swift - 在我的 mac 应用程序中添加自定义 View Controller 作为 Root View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975415/

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