私はiPhoneを初めて使用します。KVOメカニズムを実装しようとしています。
私は何を持っていますか?
2つのUIViewControllerを備えた2つのTabController、FirstViewControllerにはボタンがあり、SecondViewControllerにはUITextViewがあります
何が欲しい?
firstViewControllerでボタンを押すと、メンバー変数が更新されます。これは、secondViewControllerによって監視され、UITextViewに追加されます。
私がしたこと?
FirstViewController.h
@interface FirstViewController : UIViewController
{
IBOutlet UIButton *submitButton;
}
-(IBAction)submitButtonPressed;
@property (retain) NSString* logString;
@end
FirstViewController.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
SecondViewController.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 FORKEYPATH...」が出力されます。
私は何を得るのですか?
出力なし。
私は何を間違っているのですか?親切に助けてください