让我的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
}
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...