我ViewDidLoad
在 a 上的方法ViewController
被调用了两次,但仅在特定情况下。我需要展示两个视图控制器,一个如果用户未登录,第二个如果用户已登录。我正在使用情节提要并已将导航控制器设置为其中的初始视图控制器。
在我的AppDelegate
didFinishLaunchingWithOptions
方法中,我ViewControllers
用所需的控制器填充了数组,如下所示
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let navigationController = storyboard.instantiateViewController(withIdentifier: "navController") as! UINavigationController
if UserDefaults.standard.object(forKey: USERID) != nil {
viewController = storyboard.instantiateViewController(withIdentifier: "HomeVC_ID") as! HomeVC
}
else {
viewController = storyboard.instantiateViewController(withIdentifier: "LoginVC_ID") as! LoginVC
}
navigationController.viewControllers = [viewController] as! [UIViewController]
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
ViewDidLoad
方法 inHomeVC
被调用两次,而它只被调用一次 for LoginVC
。
我已经尝试在文章中搜索viewDidLoad 被调用了两次,并且viewDidLoad 在启动时在 rootViewController 上被调用了两次,但无法解决这个问题。