Когда вы создаете свой контроллер вида навигации из раскадровки, он уже содержит его rootViewController
(что не следует путать с rootViewController
из UIWindow
).Я думаю, это ваше HomeVC
(в раскадровке).Итак, магия раскадровки уже создает HomeVC
, и вам не нужно создавать ее вручную в didFinishLaunchingWithOptions
.
Если вы указали раскадровку в качестве основного интерфейса в свойствах проекта / цели, вы делаетене нужно никакого творческого кода в didFinishLaunchingWithOptions
и просто позвольте фреймворку творить чудеса.
Если вы хотите сделать это программно, то - в раскадровке - вы должны удалить контроллер навигации и создать его вручную (не через instantiateViewController
) в didFinishLaunchingWithOptions
.Здесь вы также добавили бы соответствующий контроллер корневого представления (созданный из раскадровки), возможно, так:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
if UserDefaults.standard.object(forKey: USERID) != nil {
viewController = storyboard.instantiateViewController(withIdentifier: "HomeVC_ID") as! HomeVC
} else {
viewController = storyboard.instantiateViewController(withIdentifier: "LoginVC_ID") as! LoginVC
}
let navigationController = UINavigationController(rootViewController:viewController)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()