在最顶部的 UIViewController 上显示 UIAlertController
Posted
技术标签:
【中文标题】在最顶部的 UIViewController 上显示 UIAlertController【英文标题】:Displaying UIAlertController on top most UIViewController 【发布时间】:2019-05-14 19:49:28 【问题描述】:我正在使用 UIAlertController 创建警报,我希望警报显示在当前正在显示的任何视图控制器上。这个应用程序有大约 30 个不同的视图控制器,我需要在当前显示的任何视图上显示警报。有没有人建议以最简单的方式做到这一点。
我使用 NSTimer 每 30 秒在其中一个视图上调用一个函数,以寻找来自 SOAP 服务的响应。如果我的 SOAP 服务有响应,我希望能够知道当前正在使用哪个视图并显示警报。
【问题讨论】:
【参考方案1】:您可能希望轮询 SOAP 服务的代码生成广播通知,并且您的每个视图控制器都将观察该通知。有可能所有的 viewController 都会同时收到通知,但我怀疑只有前台 viewController 可以对其进行操作(或者,您需要某种方式让 viewController 知道它是活动的 viewController,如果不是激活一个,忽略通知)。或者,您可以在 viewController 出现时执行 addObserver,并在 viewController 消失时移除观察者。
看到这篇文章:
Send and receive messages through NSNotificationCenter in Objective-C?
【讨论】:
谢谢迈克尔。这正是我所需要的。我给了你一个赞成票,但我没有足够的代表来发帖。【参考方案2】:self.window?.rootViewController?.navigationController?.topViewController
返回栈顶视图控制器
【讨论】:
以上是关于在最顶部的 UIViewController 上显示 UIAlertController的主要内容,如果未能解决你的问题,请参考以下文章
关闭 UIViewController 而不关闭其顶部的警报
多模态 UIViewControllers |仅关闭顶部模态 UIViewController
如何在 UIViewController 的 tableView 顶部添加自定义视图并能够一起滚动
Interface Builder 布局 UIViewController xib 用于更改顶部栏高度的方向
在swift中,如何在顶部保持一个UIViewController().view?比如UIAlertController