#ios #swift5
#iOS #swift5
Вопрос:
navigationController?.setViewControllers
работает с задержкой в override func viewDidAppear(
, в других случаях, все работает нормально.
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print(self.navigationController?.children)
print(self.navigationController?.viewControllers)
var array = self.navigationController?.children
array!.insert(ViewController(), at: array!.count - 1)
navigationController?.setViewControllers(array!, animated: false)
print(self.navigationController?.viewControllers)
}
Он печатает:
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.TwoViewController: 0x7f9a1b40e320>])
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.TwoViewController: 0x7f9a1b40e320>])
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.TwoViewController: 0x7f9a1b40e320>])
в других случаях это работает нормально. как нажатие кнопки.
@IBAction func back(_ sender: Any) {
print(self.navigationController?.children)
print(self.navigationController?.viewControllers)
var array = self.navigationController?.children
array!.insert(ViewController(), at: array!.count - 1)
navigationController?.setViewControllers(array!, animated: false)
print(self.navigationController?.viewControllers)
}
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.ViewController: 0x7f9a1b520dc0>, <One.TwoViewController: 0x7f9a1b40e320>])
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.ViewController: 0x7f9a1b520dc0>, <One.TwoViewController: 0x7f9a1b40e320>])
Optional([<One.ViewController: 0x7f9a1b4021e0>, <One.ViewController: 0x7f9a1b520dc0>, <One.ViewController: 0x7f9a1b40cd10>, <One.TwoViewController: 0x7f9a1b40e320>])
Все работает так, как ожидалось.
Два метода работали один за другим.
Я думаю navigationController?.setViewControllers
, что работает override func viewDidAppear(
, немного задерживается.
Что такое механизм?
Комментарии:
1. что произойдет, если вы установите анимированное значение false в
super.viewDidAppear(false)
2. @mbutan , как обычно, ничего особенного. Я не знаю, что заметить