是否需要从顶视图控制器显示警报视图?

时间:2016-10-05 13:20:36

标签: ios cocoa-touch

在展示UIAlertController时,是否有必要使用屏幕上最顶层的UIViewcontroller?这个UIViewController是否需要可见或仅在视图层次结构中? 如果直接从UIWindow的根viewController提交任何警报会不会有任何不利之处?

2 个答案:

答案 0 :(得分:1)

在我看来,从应用程序的根视图控制器呈现没有任何错误。看看以下问题和接受的答案 How to present UIAlertController when not in a view controller?

我在UIAlertViewController上使用的类别类似于上面链接中的答案,我从未遇到过任何问题。

答案 1 :(得分:1)

我认为从当前呈现的视图控制器中呈现UIAlertViewController会更好。对我来说,我曾经得到过如下所示的当前视图控制器:

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
UIViewController *viewController = keyWindow.rootViewController;
while (viewController.presentedViewController) {
    viewController = viewController.presentedViewController;
}
[viewController presentViewController:alertController animated:YES completion:nil]

使用root来呈现视图控制器之前给我带来了一个问题,但实际上我无法记住。在使用最顶层的时候,您处于安全的一面。