It turns out that you can disambiguate based on the response to isMovingToParentViewController
. If it is YES
your controller has just been placed topmost on the stack. If it is NO
, your controller is returning to topmost, another push on top of it being popped. Example:
-(void)viewWillAppear:(BOOL)animated{
if (self.isMovingToParentViewController == NO) { // returning from even higher controller
[self updateForChangesThatMayHaveHappenedInSubController];
}
[super viewWillAppear:animated];
}