如何在UINavigationController中获得弹出视图的通知?

Pet*_*rdk 7 delegates uinavigationcontroller ios

我想,当用户按下我的后退按钮进行操作UINavigationController时,在一定的到来UIViewController.

不幸的是,看起来UINavigationControllerDelegate没有任何方法可以获得有关视图弹出的通知.

作为一种解决方法,我现在在viewDidDisappear方法中有我的动作,只有当animated它被触发时YES.这有效,但有点难看.

我该怎么做呢?

sam*_*ize 21

从导航视图控制器(以及模态)处理pop的最常用方法是viewWillDisappear为视图控制器实现.

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    if (self.isMovingFromParentViewController || self.isBeingDismissed) {
        // This view controller is being popped or dismissed
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您在堆栈中有对控制器的引用,则该引用将在弹出时显示,您可以注册为委托并通过以下方式进行检查

navigationController:willShowViewController:animated:
Run Code Online (Sandbox Code Playgroud)


all*_*Nit 0

您可以在 viewWillDisappear 时调用委托方法,也可以在 viewWillAppear 上为某些 UIViewController 设置逻辑。