首页 > 解决方案 > 将 NavigationBarController 设置为 rootViewController

问题描述

我尝试使用 MVC 模式,其中我的 NavigationController 实例化并控制我的所有视图和相应的视图开关。为此,我只需实例化我的 navigationController 并将其设置为 app delegate 中的 rootViewController。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let navigationController: NavigationController = (mainStoryboard.instantiateViewController(withIdentifier: "navigationController") as! NavigationController)

    self.window?.rootViewController = navigationController
    self.window?.makeKeyAndVisible()
    return true
}

viewDidLoad()我的 NavigationController 类的函数中,我只是用 myTableViewController 实例化我的第一个“真实”视图并将其推到前面。

override func viewDidLoad() {
    super.viewDidLoad()
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    self.myTableViewController = mainStoryboard.instantiateViewController(withIdentifier: "myTableViewController") as? MyTableViewController
    self.pushViewController(myTableViewController!, animated: true)
}

尽管一切正常,但我收到控制台警告:

无法为 UIMainStoryboardFile 'Main' 实例化默认视图控制器 - 也许未设置指定的入口点?

我认为会出现此警告,因为 navigationController 不是“真正的” ViewController ...但是如何在 App 委托中实例化 MyTableView() 的情况下修复它?

标签: swiftmodel-view-controlleruinavigationcontrollerappdelegaterootviewcontroller

解决方案


在此处输入图像描述

请检查您的故事板设置为初始视图控制器。


推荐阅读