1

当用户按下返回按钮从活动的 UINavigationController 弹出当前 UIViewController 时,我需要 - 在某种特殊情况下 - 以编程方式从同一个导航控制器弹出另一个 UIViewController(新的顶部)。

(不详述,请相信我,这并没有违反 Apple 的人机界面指南。相反,如果我不弹出额外的 VC,它可能会违反指南)。

我能想到的唯一方法是将 a popViewControllerAnimated:in放置viewWillDisappear:,但不幸的是这不起作用(即使我要弹出的 VC 仍然显示为 in 中的最后一个对象self.navigationController.viewControllers)。我在通话中尝试了“是”和“否”。

我找不到一种方法来检测 VC 何时将被弹出,viewWillDisappear:因为UINavigationControllerDelegate没有行为来检测 VC 何时将被弹出,只有当它即将被推送时。

有没有办法做到这一点?

4

1 回答 1

1

iOS5 中有一些不错的新方法,您可以使用它们来检测您是否即将被弹出。

请参阅 UIViewController 包含部分。

- (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);
于 2012-07-16T14:41:46.193 回答