- (void)setItem:(UITabBarItem *)item
{
_item = item;
//监听调用
[self observeValueForKeyPath:nil ofObject:nil change:nil context:nil];
// KVO:时刻监听一个对象的属性有没有改变
// 给谁添加观察者
// Observer:按钮
[item addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:nil];
[item addObserver:self forKeyPath:@"image" options:NSKeyValueObservingOptionNew context:nil];
[item addObserver:self forKeyPath:@"selectedImage" options:NSKeyValueObservingOptionNew context:nil];
[item addObserver:self forKeyPath:@"badgeValue" options:NSKeyValueObservingOptionNew context:nil];
}
// 只要监听的属性一有新值,就会调用
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
[self setTitle:_item.title forState:UIControlStateNormal];
[self setImage:_item.image forState:UIControlStateNormal];
[self setImage:_item.selectedImage forState:UIControlStateSelected];
// 设置badgeValue
self.badgeView.badgeValue = _item.badgeValue;
}
kvo
最新推荐文章于 2015-11-16 00:01:00 发布