Я пытаюсь понять логику инициализации UINavigationController
с помощью инициализатора:
UINavigationController(rootViewController: MyViewController())
Приложение, которое я изменяю, использовало этот инициализатор, а внутри MyViewController
пользовательский инициализатор, который у меня был:
class MyViewController:UIViewController{
init(){
super.init(nibName: "MyViewController", bundle: nil)
}
}
В методах жизненного цикла MyViewController
у viewDidLoad
раньше не было nil
для значения navigationController
.
Единственное изменение, которое я сделал, - внутри пользовательского инициализатора. Сейчас:
init(){
super.init(nibName: nil, bundle: nil)
/*EDIT*/
let dummyMe = UIView()
view.addSubview(dummyMe)
}
Другими словами, я не хочу использовать файл xib. Это изменение привело меня к краху, и после некоторой отладки я понял, что значение navigationController
в методе viewDidLoad
равно nil, но не в моем методе viewWillAppear.
Как это возможно? Должен ли инициализатор UINavigationController
вызвать viewDidLoad
? Почему navigationController
значение nil
сейчас?
Спасибо