当用户按下Back按钮从活动的UINavigationController弹出当前的UIViewController时,我需要 - 在某种特殊情况下 - 以编程方式从同一导航控制器弹出另一个UIViewController(新的顶级)。
(不详细说明,请相信我这并不违反苹果的人机界面指南。相反,如果我没有弹出额外的VC,可能会违反指南)。
我能想到的唯一方法是在popViewControllerAnimated:
中放置一个viewWillDisappear:
,但遗憾的是这不起作用(即使我想要弹出的VC仍然显示为最后一个对象) self.navigationController.viewControllers
)。我在通话中尝试了YES和NO。
我无法找到一种方法来检测何时要在viewWillDisappear:
之前弹出VC,因为UINavigationControllerDelegate
没有检测VC即将弹出的行为,仅当它即将推出时。
有办法做到这一点吗?
答案 0 :(得分:1)
iOS5中有一些不错的新方法可用于检测是否即将弹出。
请参阅UIViewController Containment部分。
- (BOOL)isBeingPresented __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isBeingDismissed __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isMovingToParentViewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isMovingFromParentViewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);