我尝试使用MVC模式,在这里我的NavigationController实例化并控制我的所有视图和相应的视图开关。为了实现这一点,我只需实例化我的导航控制器,并在app委托中将其设置为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'-可能指定的入口点是
没有设定?
我认为出现此警告,因为导航控制器不是“真正的”ViewController。。。但是,如果不在App delegate中实例化MyTableView(),我如何修复它呢?
最佳答案
关于swift - 将NavigationBarController设置为rootViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52298143/