【问题标题】:How to update a label of some ViewController from the AppDelegate?如何从 AppDelegate 更新一些 ViewController 的标签?
【发布时间】:2013-02-07 16:18:40
【问题描述】:

我有几个视图控制器,每个控制器都有一个标签或一个按钮。我想从 AppDelegate 更改可见视图控制器按钮或标签的文本。我知道这是一种不好的做法,但是我在 AppDelegate 中运行了一个后台线程,该线程在服务器上为用户查找新图像,如果有,它必须更新当前显示视图导航栏标签中的新图像计数器.

我的想法是在 AppDelegate.m 中使用下一个代码:(ControllerWhichLabelIWantToChange*) self.navigationControllerClass.visibleviewcontroller. ... 但在这里我看不到我在 ControllerWhichLabelIWantToChange 中为其定义属性的标签或按钮。

那么问题是如何从 AppDelegate 访问不同视图控制器的元素并更改它们?

【问题讨论】:

  • 正如我所见,人们只能在没有任何解释的情况下否决我的问题!我真的很高兴有这样一位经验丰富的程序员。
  • 解释一下为什么你认为你需要采用这种“坏习惯”可能会很好。也许我们可以推荐一个更好的。
  • @rdelmar 好的。请查看我的编辑!
  • 查看委托/协议或通知。两者都行。

标签: ios objective-c uiviewcontroller appdelegate


【解决方案1】:

一个可能对您更好的建议是使用NSNotificationCenter 发送有关各种更改的通知。任何希望刷新自己的视图都可以响应此类通知。这是一种常见的做法。例如,您正在后台处理主题数据,并且您有 20 个需要主题化的实时视图,您可以在后台处理完成后发布通知,并且所有正在观察通知的视图都会收到通知,他们可以自己更新。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 2012-06-25
相关资源
最近更新 更多