我有一个iOS Objective-C应用程序,我试图在其中显示一个UIAlertController,从一个正在关闭的UIViewController。我尝试在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!
有人能给点建议吗?
2条答案
按热度按时间4zcjmb1e1#
如果你想在关闭一个视图控制器时显示一个警告,那么你可以用完成块实现dismiss并在那里显示它。例如:
u0njafvf2#
您可以使用带有透明UIViewController的UIWindow,然后在其上显示UIAlertController。下面的链接提供了UIAlertController上的一个类别,该类别在Objective-C中具有show方法。您可以使用它。
链接:How to present UIAlertController when not in a view controller?