我有一个iOS Objective-C应用程序,我试图从正在关闭的UIViewController中显示一个UIAlertController。我尝试在AppDelegate
中添加此常用解决方法:
- (UIViewController *)currentTopViewController
{
UIViewController *topVC = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
while (topVC.presentedViewController)
{
topVC = topVC.presentedViewController;
}
return topVC;
}
跟:
[appDelegate.currentTopViewController presentViewController:alert animated:YES completion:nil];
但是这个错误仍然出现:
Warning: Attempt to present UIAlertController on MyViewController whose view is not in the window hierarchy!
有人可以提供建议吗?
答案 0 :(得分:0)
如果要在关闭视图控制器时显示警告,则可以使用完成块实现解除并在那里显示。例如:
[self dismissViewControllerAnimated:YES completion:^(void) {
// UIAlertController code here
}];
答案 1 :(得分:0)
您可以将UIWindow与透明的UIViewController一起使用,然后在其上显示UIAlertController。 下面的链接提供了一个关于UIAlertController的类别,它在Objective-C中有一个show方法。你可以使用它。