如何在Objective C中在显示另一个UIAlertController之前关闭已显示的UIAlertController?

3

我想在呈现新的UIAlertController之前关闭先前呈现的UIAlertControllers。我需要从AppDelegate中执行此操作。如何实现?欢迎提供所有建议。


这似乎像是你在那里编写混乱代码,能否解释一下为什么需要在App Delegate中完成这个任务? - Daniel Galasko
但是如果您点击按钮,使用dispatch_async到主线程并呈现一个新的视图控制器,那么您应该没问题。 - Daniel Galasko
嗯,每次收到通知消息时,我都会呈现一个UIAlertController。我也想在用户使用应用程序时通知他们。有时会同时出现多个通知,无法确定实际会有多少。在每个UIAlertController上点击按钮很麻烦。 - Nitin
2个回答

4
您可以找到顶部呈现的视图控制器,并检查它是否为UIAlertController。如果是,那么您可以在其上调用dismissViewControllerAnimated:。所有这些都可以从应用程序委托中很简单地完成。

这个可以运行:if ([[UIApplication sharedApplication].keyWindow.rootViewController isKindOfClass:[UIAlertController class]]) { [self.window.rootViewController dismissViewControllerAnimated:YES completion:nil]; } - Nitin

0

这应该会有所帮助,您可以将其扩展到所有视图控制器和视图的循环中:

[[UIApplication sharedApplication].keyWindow.rootViewController.view endEditing:YES];

2
这与问题有什么关系? - rmaddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接