在iOS中,呈现modalViewController
非常简单:
[self presentModalViewController:controller animated:YES];
或:
[[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentModalViewController:controller animated:YES];
在modalViewController
(如 navigationController
)内,您可以再次显示modalViewController
。有没有办法检测呈现了多少个模态视图控制器?否则,也许钩住presentModalViewController:animated:
和dismissModalViewControllerAnimated:
是个好主意?谢谢!
检查这个问题:
是否可以确定视图控制器是否显示为模态?
您可以使用该代码"爬上"视图,直到找到不是模式视图控制器的视图。喜欢:
while (isModal)
{
currentViewController = currentViewController.presentingViewController;
...
}
我想我找到了一种方法来找到最顶层的viewController,这应该有助于解决这个问题:
+ (UIViewController*)getTopMostViewController {
UIWindow * window = [UIApplication sharedApplication].keyWindow;
UIViewController *appRootViewController = window.rootViewController;
UIViewController *topViewController = appRootViewController;
while (topViewController.modalViewController != nil) {
topViewController = topViewController.modalViewController;
}
return topViewController;
}