如何在xcode中从控制器外部更新视图

时间:2012-06-17 16:53:43

标签: xcode uiviewcontroller uiapplicationdelegate

到目前为止,我只是从其控制器中更新了一个视图。我现在处于一种不同的情况,我需要根据我的应用程序的另一个类C中发生的某些事件更新视图中的元素(文本标签)。我意识到这是基本的,但我不清楚处理这个问题的正确方法是什么。

  • 我应该在C的init方法中传递我的视图控制器吗? (每当我初始化C类时,看起来很麻烦。在传递视图控制器时也会很麻烦。还需要一堆重构。)

  • 我应该通过调用[[UIApplication sharedApplication]委托]从C中检索应用委托,并从应用委托中检索我需要的视图控制器吗?

这两种方法都没有实际或优雅。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

两种最常见的方法是委托和通知。

在一种情况下,您为C类提供委托属性并将其设置为视图控制器。为了使它看起来不错,您可以定义一个类似于许多API类所做的委托协议。 可以在init中传递,但直接设置属性是标准的。

另一种方法是让视图控制器侦听C类在事件发生时发送的通知。然后视图控制器在收到通知时进行更新。