0

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

  • 我应该在 C 的 init 方法中传递我的视图控制器吗?(每当我初始化 C 类时,传入视图控制器似乎很麻烦。也需要大量重构。)

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

这两种方法都没有让我觉得实用或优雅。

有没有更好的办法?

4

1 回答 1

0

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

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

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

于 2012-06-17T16:59:07.197 回答