3

MyWindowClass のプロパティ myWindow を持つ appDelegate があります。myWindow から bool プロパティを観察する必要があります。bool値の変化を観察する必要があるCustomViewControllerがあります。オブザーバーを追加したい場合は、ViewController で次のようにします。

LayerWindow *w = ((AppDelegate*)[UIApplication sharedApplication].delegate).window;
    [w addObserver:self forKeyPath:@"touchInsideLayerWindow" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:nil];

ViewController で私が持っている

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 

ヘッダファイルにもメソッドが定義されています。

WindowClass には、次のコードがあります。

[self setValue:[NSNumber numberWithBool: YES]forKey:@"touchInsideLayerWindow"];
 NSLog(@"isTouchInside %@", self.touchInsideLayerWindow ? @"YES" : @"NO");

ViewController のobserveValueForKeyPath メソッドが呼び出されることはありません。誰が知っていますか、何が悪いのですか?ありがとう

4

3 に答える 3

0

この行[self setValue:[NSNumber numberWithBool: YES]forKey:@"touchInsideLayerWindow"];

[self willChangeValueForKey:@"touchInsideLayerWindow"];
[self setValue:[NSNumber numberWithBool: YES]forKey:@"touchInsideLayerWindow"];
[self didChangeValueForKey:@"touchInsideLayerWindow"];
于 2013-02-14T09:45:40.303 に答える