bel*_*ian 12 uinavigationcontroller ios swift
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)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我演示的第一个控制器,在控制台中:
sss
showViewController
showViewController
Run Code Online (Sandbox Code Playgroud)
两次调用"didShowViewController".我不确定发生了什么
-----------------一些测试----------------------
我在控制器的这些方法中添加了一些日志:loadView,viewDidLoad,viewWillAppear,viewDidAppear,这些日志的顺序是:
loadView
viewDidLoad
viewWillAppear
will:<NaviDemo.ViewController: 0x7fe8c9533050>
<NaviDemo.ViewController: 0x7fe8c9533050>
viewDidAppear
<NaviDemo.ViewController: 0x7fe8c9533050>
Run Code Online (Sandbox Code Playgroud)
显示UINavigationController了 a 的两个实例UIViewController
从UINavigationControllerDelegate文档中
\n\n\n在导航控制器显示视图\n控制器\xe2\x80\x99s视图和导航项属性后调用。
\n
不要记录“showViewController”,而是记录UIViewController实例以查看发生了什么
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {\n print(viewController)\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4062 次 |
| 最近记录: |