将NavigationBarController设置为rootViewController

时间:2018-09-12 14:56:26

标签: swift model-view-controller uinavigationcontroller appdelegate rootviewcontroller

我尝试使用MVC模式,其中我的NavigationController实例化并控制所有视图和相应的视图开关。为此,我只需实例化navigationController并将其设置为应用程序委托中的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
}

在NavigationController类的viewDidLoad()函数中,我只是使用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()的情况下解决该问题?

1 个答案:

答案 0 :(得分:1)

enter image description here

请检查您的情节提要板设置为“初始视图控制器”。