Checking if a UIViewController is about to get Popped from a navigation stack?

后端 未结 15 994
说谎
说谎 2020-12-04 19:17

I need to know when my view controller is about to get popped from a nav stack so I can perform an action.

I can\'t use -viewWillDisappear, because that gets called

15条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-04 19:32

    You can observe the notification:

    - (void)viewDidLoad{
        [super viewDidLoad];
        [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(navigationControllerWillShowViewController:) name:@"UINavigationControllerWillShowViewControllerNotification" object:nil];
    }
    
    - (void)navigationControllerDidShowViewController:(NSNotification *)notification{
        UIViewController *lastVisible = notification.userInfo[@"UINavigationControllerLastVisibleViewController"];
        if(lastVisible == self){
            // we are being popped
        }
    }
    

提交回复
热议问题