将 NavigationBarController 设置为 rootViewController
Set NavigationBarController to 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 class 的 viewDidLoad()
函数中,我只是用 myTableViewController 实例化我的第一个 "real" 视图并将其推到前面。
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)
}
虽然一切正常,但我收到控制台警告:
Failed to instantiate the default view controller for
UIMainStoryboardFile 'Main' - perhaps the designated entry point is
not set?
我认为出现此警告是因为 navigationController 不是 "real" ViewController...但是如果不在 App delegate 中实例化 MyTableView() 如何修复它?
请检查您的故事板设置为初始视图控制器。
我尝试使用 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 class 的 viewDidLoad()
函数中,我只是用 myTableViewController 实例化我的第一个 "real" 视图并将其推到前面。
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)
}
虽然一切正常,但我收到控制台警告:
Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
我认为出现此警告是因为 navigationController 不是 "real" ViewController...但是如果不在 App delegate 中实例化 MyTableView() 如何修复它?
请检查您的故事板设置为初始视图控制器。