Ser*_*nce 8 iphone cocoa-touch uiviewcontroller uinavigationcontroller ios
我需要做一些事情时,我的视图控制器都推或从导航堆栈中弹出,但不希望使用viewillappear/viewdidappear或viewwilldisappear/viewdiddisappear因为这些盖的情况下,除了当视图控制器推/弹出.是正确的方法去使用navigationcontroller委托和navigationController:didShowViewController:animated:和navigationController:willShowViewController:animated:?如果没有,最好的办法是什么?
要知道什么时候推,你可以使用
UINavigationControllerDelegate
并实施
- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController
animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)
只要将viewcontroller推入导航堆栈,并且每当其上方的viewcontroller被弹出时,此方法就会触发,从而再次显示它.因此,您必须使用一个标志来确定它是否已经初始化,如果它没有意味着它只是被推动了.
要了解它何时被弹出,请使用以下答案:
viewWillDisappear:确定是正在弹出视图控制器还是正在显示子视图控制器
您可以尝试在对象推送或从导航控制器堆栈弹出时调用的UINavigationController委托方法.
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8974 次 |
| 最近记录: |