ios 从已关闭的视图控制器显示警报

k97glaaz  于 2023-03-05  发布在  iOS
关注(0)|答案(2)|浏览(144)

我有一个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!

有人能给点建议吗?

4zcjmb1e

4zcjmb1e1#

如果你想在关闭一个视图控制器时显示一个警告,那么你可以用完成块实现dismiss并在那里显示它。例如:

[self dismissViewControllerAnimated:YES completion:^(void) {
  // UIAlertController code here

}];
u0njafvf

u0njafvf2#

您可以使用带有透明UIViewController的UIWindow,然后在其上显示UIAlertController。下面的链接提供了UIAlertController上的一个类别,该类别在Objective-C中具有show方法。您可以使用它。
链接:How to present UIAlertController when not in a view controller?

相关问题