UINavigationController and viewWillAppear / viewDidAppear
2014-10-20 18:55
381 查看
iPhone Development 101: User
Interface: UINavigationController:
UINavigationController and viewWillAppear / viewDidAppear
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 rootview 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开发中的viewController的viewWillAppear 和viewDidAppear 等调用的总结
- 直接把View Controller的view addSubview到另一个View,则不会调用viewDidAppear viewWillAppear
- 关于通过UINavigationController push 过去到一个view controller而这个viewvontroller的viewwillappear不执行的问题
- viewWillAppear: not being called inside a UINavigationController
- 关于IOS开发中addSubView上去的viewController的viewWillAppear 和viewDidAppear 等调用的总结
- presentModalViewController and UINavigationController
- viewWillAppear: viewDidAppear: viewWillDisappear:viewDidDisappear:loadView
- viewWillAppear: viewDidAppear: viewWillDisappear:viewDidDisappear:loadView
- 请问-viewWillAppear:和-viewDidAppear:的区别是什么呢?
- 【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
- ViewDidAppear/ViewWillAppear not being called
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途
- navigationController中viewWillAppear,viewDidAppear,viewWillDisappear和viewDidDisappeart调用问题
- Pop and push the same view does not invoke the viewWillAppear() method (转载)
- loadView和viewDidLoad方法及viewWillAppear和viewDidAppear
- 让viewDidAppear/viewWillAppear 在push/pop页面加载前始终调用
- 让viewDidAppear/viewWillAppear 在页面加载前始终调用
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途