关闭多个视图控制器(iOS 8)

时间:2014-10-24 11:15:27

标签: ios objective-c xcode

我面临一个与dismisscontroller相关的问题(如下所述)我尝试使用[self isBeingDismissed]解决该问题,但对我没有用。

假设我们有 rootviewController - >在那个>上显示 ViewController1 然后呈现 ViewController2

如果你调用rootviewController的dismissModalViewControllerAnimated,那么它在iOS 8和iOS 7中的行为会有所不同。

1)在iOS 7中,你直接转到rootviewController,即没有调用ViewController1的方法。 2)在iOS 8中,第一个viewwill ViewController1的旁边是在解除时被调用的。

有没有其他方法可用于解决此问题?我尝试过使用

- (BOOL)isBeingPresented
- (BOOL)isBeingDismissed
- (BOOL)isMovingToParentViewController
- (BOOL)isMovingFromParentViewController

1 个答案:

答案 0 :(得分:0)

虽然它不是最优雅的解决方案,你可以在viewcontroller 1中有一个变量,它是一个boolean - dismissInProgress,然后当viewcontroller 2即将被解散时,你可以在viewcontroller 1上设置这个值。然后你可以有一个if viewwillappear方法中的语句。

另一种选择是,将导航控制器附加到viewcontroller 1,然后当你呈现viewController 1时,你实际呈现导航控制器,然后当viewcontroller 2解散时,它实际上解散了导航控制器。