Вы наблюдаете, что ключи будут уведомлены, когда их значение изменится.Тип данных может быть любым.Для всего, что определено как свойство Objective C (с @property в .h файле), все готово, поэтому, если вы хотите наблюдать свойство BOOL, добавляемое в контроллер представления, вы делаете это следующим образом:
в myViewController.h:
@interface myViewController : UIViewController {
BOOL mySetting;
}
@property (nonatomic) BOOL mySetting;
в myViewController.m
@implementation myViewController
@synthesize mySetting;
// rest of myViewController implementation
@end
в otherViewController.m:
// assumes myVC is a defined property of otherViewController
- (void)presentMyViewController {
self.myVC = [[[MyViewController alloc] init] autorelease];
// note: remove self as an observer before myVC is released/dealloced
[self.myVC addObserver:self forKeyPath:@"mySetting" options:0 context:nil];
// present myVC modally or with navigation controller here
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == self.myVC && [keyPath isEqualToString:@"mySetting"]) {
NSLog(@"OtherVC: The value of self.myVC.mySetting has changed");
}
}