0

在我尝试构建自己的之前,我想知道是否有任何用于监视状态更改的苹果 Xcode API。我开发的应用程序改变了几个视图控制器。每个控制器可以有几个较小的自定义视图以及常用的复选框、文本字段等。

主应用程序需要知道视图控制器或其上的任何内容是否从其先前状态被编辑,当它被拉起之前,它再次被保存。我们只需要知道状态是否发生了变化。需要注意的是:如果用户选中了一个复选框,这被认为是状态的改变,但如果用户也取消选中了复选框,那么状态不会改变。

我正在查看 NSUndoManager 但我不确定它是否会起作用。任何建议表示赞赏

4

1 回答 1

1

有几种方法:

  1. 实现一个集中的“模型”对象。在这种情况下,视图控制器只会更新这个主模型对象的属性,而您几乎不需要做其他事情。然后,视图控制器将viewDidAppear检查这个模型对象的状态,看看是否有任何变化并采取相应的行动。

  2. 另一种方法是实现委托协议模式,通过该模式,各种控制器可能具有一些delegate属性,这些属性将指示必须通知哪些对象数据更改。这个将成为数据委托的对象将被定义为符合一些明确定义的协议,该协议指示如何将更改通知它。

  3. 但是,如果您 (a) 有多个需要通知更改的对象;和/或 (b) 这些更改可能在呈现视图时异步发生,您需要一些机制来执行此通知。两种常见的方法是使用该模型对象的键值观察或通过NSNotificationCenter.

为了更好地为您提供建议,我们需要更好地了解模型对象的性质,更新是否在后台异步发生等。

于 2013-05-17T23:39:27.657 回答