假设我有一个地址簿应用程序。因此,从地址列表中,我现在推到这样的详细视图:
- 用户点击主列表中的单元格
- Segue
showDetail
被调用 - 在
prepareForSegue:
中,我设置了ContactDetailViewController
的模型对象contact
viewWillAppear
我为self.contact
添加了一个观测器- 因此,现在当
contact
对象在后台发生更改时,局部视图将自动更新 - 在
viewWillDisappear
中,我删除了这个观察者(我想它是干净的,因为它是对称的)
但是,在我设置联系人之后,viewWillAppear:
被称为。因此,我应该以不同的方式设置KVO,还是简单地在viewWillAppear
中调用我的updateView
函数,这有点愚蠢,因为我首先想摆脱那些使用KVO的调用。
当您调用addObserver:...
时,您希望包含选项NSKeyValueObservingOptionInitial
。这将导致KVO在添加观察的同一调用中发送相当于didChangeValueForKey:
通知的通知(即"初始"通知)。这将导致您的视图在那时更新。