在最上面的UIViewController上显示UIAlertController

时间:2019-05-14 19:49:28

标签: objective-c uiviewcontroller

我正在使用UIAlertController创建警报,并且希望该警报显示在当前正在显示的任何视图控制器上。此应用程序具有大约30个不同的视图控制器,我需要在当前正在显示的任何视图上显示警报。有没有人建议以最简单的方式做到这一点。

我正在使用NSTimer每30秒在其中一个视图上调用一个函数,以寻找SOAP服务的响应。我希望能够知道当前正在使用哪个视图,并在SOAP服务响应时显示警报。

2 个答案:

答案 0 :(得分:0)

您可能希望轮询SOAP服务的代码生成广播通知,并且每个viewController都将观察该通知。可能所有的viewControllers都会同时收到通知,但是我怀疑只有前台的viewController可以对其进行操作(或者,您需要某种方式让viewController知道它是活动的viewController,如果不是,活动之一,请忽略该通知)。或者,您可以在viewController出现时执行addObserver,并在viewController消失时删除观察者。

查看此信息:

Send and receive messages through NSNotificationCenter in Objective-C?

答案 1 :(得分:0)

self.window?.rootViewController?.navigationController?.topViewController返回堆栈上的顶视图控制器