class ViewController: UIViewController, UINavigationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
navigationController!.delegate = self
}
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {
print("showViewController")
}
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
print("sss")
}
func update() {
let vc = SecondViewController()
navigationController!.pushViewController(vc, animated: true)
}
}
dies ist der erste Controller meiner Demo, und in der Konsole genannt:UINavigationControllerDelegate der didShowViewController Verfahren wurde zweimal
sss
showViewController
showViewController
die "didShowViewController" wurde zweimal genannt. Ich bin mir nicht sicher, was auf
----------------- einige Tests geht ------------------ ----
ich einige log in dieser Methode der Steuerung hinzu: Loadview, viewDidLoad, viewWillAppear, viewDidAppear, und die Reihenfolge dieser log ist:
loadView
viewDidLoad
viewWillAppear
will:<NaviDemo.ViewController: 0x7fe8c9533050>
<NaviDemo.ViewController: 0x7fe8c9533050>
viewDidAppear
<NaviDemo.ViewController: 0x7fe8c9533050>
danke, hatte ich versucht, Ihre vorschlagen, in Konsole, druckt es die gleiche Instanz zweimal –
warum wird die Methode zweimal aufgerufen? @James Zaghini –