2

「プロパティ」と呼ばれる他のクラスの1つから、「WriteIt_MobileAppDelegate」と呼ばれる別のクラスにあるテーブルビューをリロードしたいと思います。NSNotificationCenterクラスを介してこれを実行しようとしました。ログは呼び出されますが、テーブルは更新されません。

Properties.h:

 [[NSNotificationCenter defaultCenter] postNotificationName:@"NameChanged"
              object:[WriteIt_MobileAppDelegate class]
               userInfo:nil]; 

WriteIt_MobileAppDelegate.m

-(void)awakeFromNib {

[[NSNotificationCenter defaultCenter] addObserver:selfセレクター:@selector(reloadItProperties :) name:@ "NameChanged" object:self];

}

- (void) reloadItProperties: (NSNotification *)notification {

 NSLog(@"Reloading Data"); //this gets called
[[self navigationController] dismissModalViewControllerAnimated:YES];
[self.navigationController popToRootViewControllerAnimated:YES];
 [self.tblSimpleTable reloadData];
 [self.tblSimpleTable reloadSectionIndexTitles];
 // but the rest doesn't
}

私はここで何が間違っているのですか?

4

1 に答える 1

2

objectパラメータを間違って使用しているようです:

addObserver:selector:name:object:

NotificationSender
オブザーバーが受信したい通知を持つオブジェクト。
つまり、この送信者によって送信された通知のみがオブザーバーに配信されます。nilを渡すと、通知センターは通知の送信者を使用して、通知をオブザーバーに配信するかどうかを決定しません。

于 2010-05-18T17:06:01.750 に答える