UINavigationController and viewWillAppear / viewDidAppear
2011-06-06 21:47
453 查看
源自:http://www.idev101.com/code/User_Interface/UINavigationController/viewWillAppear.html
When you push or pop a view controller on/off a navigaction controller's stack, the usual viewWillAppear / viewDidAppear methods aren't called. If you want to ensure they're always called, just add the UINavigationControllerDelegate protocol to your root view controller:
Then implement these two methods:
Be sure to set the root view controller as the delegate for the nav controller. Now viewWillAppear / viewDidAppear will be called whenever a controller is pushed/popped from the stack.
If you want to call the viewWillDisappear/viewDidDisappear methods, your view controller still has to do that manually before popping itself off the nav stack.
When you push or pop a view controller on/off a navigaction controller's stack, the usual viewWillAppear / viewDidAppear methods aren't called. If you want to ensure they're always called, just add the UINavigationControllerDelegate protocol to your root view controller:
@interface RootViewController : UIViewController <UINavigationControllerDelegate> { UINavigationController *navController; }
Then implement these two methods:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { [viewController viewWillAppear:animated]; } - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { [viewController viewDidAppear:animated]; }
Be sure to set the root view controller as the delegate for the nav controller. Now viewWillAppear / viewDidAppear will be called whenever a controller is pushed/popped from the stack.
If you want to call the viewWillDisappear/viewDidDisappear methods, your view controller still has to do that manually before popping itself off the nav stack.
相关文章推荐
- UINavigationController and viewWillAppear / viewDidAppear
- viewDidAppear/viewWillAppear in UINavigationController not be called
- 关于IOS开发中addSubView上去的viewController的viewWillAppear 和viewDidAppear 等调用的总结
- 关于通过UINavigationController push 过去到一个view controller而这个viewvontroller的viewwillappear不执行的问题
- viewWillAppear: not being called inside a UINavigationController
- 直接把View Controller的view addSubview到另一个View,则不会调用viewDidAppear viewWillAppear
- 关于IOS开发中的viewController的viewWillAppear 和viewDidAppear 等调用的总结
- willMoveToParentViewController和didMoveToParentViewController
- UIViewController 中的 willMoveToParentViewController和didMoveToParentViewController的使用
- ios view的几种加载函数的区别didFinishLaunchingWithOptions、initWithNibName:bundle、loadView、viewWillAppear
- 【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
- 请问-viewWillAppear:和-viewDidAppear:的区别是什么呢?
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途
- 【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
- 直接把ViewController的view 通过addSubview添加到另一个View,则不会调用viewDidAppear
- addChildViewController后 Childvc viewWillAppear 不调用的问题
- 视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
- iOS视图控制对象生命周期: init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别
- 【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、view