我是 iPhone 新手。我正在尝试实现 KVO 机制。
我有的?
两个 TabController 有两个 UIViewController,FirstViewController 有一个按钮,SecondViewController 有一个 UITextView
我想要的是?
当在 firstViewController 中按下按钮时,它会更新成员变量,该变量应由 secondViewController 观察,并应附加到 UITextView。
我做了什么?
第一视图控制器.h
@interface FirstViewController : UIViewController
{
IBOutlet UIButton *submitButton;
}
-(IBAction)submitButtonPressed;
@property (retain) NSString* logString;
@end
第一视图控制器.m
-(IBAction)submitButtonPressed
{
NSLog (@" Submit Button PRessed ");
self.logString = @"... BUtton PRessed and passing this information ";
}
SecondViewController.h
@interface SecondViewController : UIViewController
{
IBOutlet UITextView *logView;
}
@property (nonatomic, strong) UITextView *logView;
@end
第二视图控制器.m
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
......
NSArray *vControllers = [self.tabBarController viewControllers];
FirstViewController *fvc = [vControllers objectAtIndex:0];
[fvc addObserver:self forKeyPath:@"logString" options:NSKeyValueObservingOptionNew context:NULL];
return self;
}
-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog (@".... OBSERVE VALUE FOR KEY PATH...");
}
我期望什么输出?
每次按下 FirstViewController 中的按钮时,都应打印字符串“.... OBSERVE VALUE FOR KEY PATH...”。
我得到什么?
无输出。
我做错了什么?请帮助我