2

NSNotificationが送信されない限り、次のコードを実行しようとしています。NSNotificationifステートメントにinを入れる方法がわかりません。

if (!self.subViewControllerProv) {
    self.subViewControllerProv = [[ProvViewController alloc] init];
}


[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(handleNotification:) name:@"SomeNotification" object:nil];

要約すると、NSNotificationメッセージが観察されallocinit場合は観察され、観察されなかった場合は観察されProvViewControllerません。

4

2 に答える 2

3

通知が発生したかどうかのフラグを保持するインスタンス変数を追加し、-handleNotification: でフラグを設定してから、適切かどうかを確認してください。

- (void)handleNotification:(NSNotification*)notification {
    _notificationWasPosted = YES;
}

...

if (!_notificationWasPosted && !self.subViewControllerProv) {
    self.subViewControllerProv = [[ProvViewController alloc] init];
}
于 2013-03-08T11:49:16.130 に答える
3

さて、次のようなことはどうですか:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification) name:@"SomeNotification" object:nil];

その後

-(void) handleNotification {
    //BOOL _hasBeenSent in your interface
    _hasBeenSent = YES;
}

そして、あなたのコードで

if(_hasBeenSent) {
    NSLog(@"The notification has been sent!");
}
于 2013-03-08T11:50:14.990 に答える