我有几个视图控制器,每个视图控制器都有一个标签或按钮。我想从AppDelegate更改可视视图控制器按钮或标签的文本。我知道这是一个不好的做法,但我在AppDelegate运行一个后台线程,看起来为服务器上的用户提供了新的图像,如果有的话,它必须在当前显示的视图的导航栏上的标签中更新新的图像计数器。
我的想法是在AppDelegate.m中使用下一个代码:(ControllerWhichLabelIWantToChange*) self.navigationControllerClass.visibleviewcontroller. ...
但是在这里我看不到我在ControllerWhichLabelIWantToChange中定义属性的标签或按钮。
那么问题是如何从AppDelegate访问不同视图控制器的元素并进行更改?
答案 0 :(得分:4)
可能更适合您的一个建议是使用NSNotificationCenter发送有关各种更改的通知。任何希望刷新自己的视图都可以响应此类通知。这是一种常见的做法。比如说,例如,您正在后台处理主题数据,并且您有20个需要主题的实时视图,您可以在后台进程完成时发布通知,并且将通知观察通知的所有视图,他们可以自我更新。