如何解决让我的viewcontroller知道何时将类的属性更改为子视图?
| 我想为我的视图控制器提供一个子视图(这是它自己的类),以找出此类中的属性何时发生变化的方法。我该怎么做呢?解决方法
KVO-关键值观察。请参阅此处的文档
当您拥有一些可以在不同地方修改的中央数据时,KVO确实很整洁,并且在值更新时可能需要刷新的视图有所不同。它可能非常适合您的要求。该文档很全面,并且有很多示例。
例:
如果我们想知道TheClass.propertyName何时更改,我们可以添加一个观察者,例如:
[theClass addObserver:self forKeyPath:@\"propertyName\" options:0 context:nil];
然后,您需要实现以下方法,该方法将在发生更改时接收通知。
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString: @\"propertyName\"]) {
// Do stuff that you want to do when theClass.propertyName has changed
}
}
尽管一定要阅读文档,但说明会更好。
,如果你有
@property ... id *yourProperty;
在.m文件中,您可以实施
- (void)setYourProperty:(id)yourProperty;
例:
----
@property (nonatomic,assign) BOOL highligted;
----
- (void)setHighlighted:(BOOL)highlighted {
// execute some code
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。