我的应用程序中有一个 UITableview 控制器和一个视图控制器,我正在尝试使用 NSNotificationCenter 将 NSDictionary 从 UITableview 控制器传递到我的 ViewController。所以,我在我的 UITableview 控制器上推送一个通知,然后我添加一个观察者,在我的 ViewController 上使用一个选择器。选择器被调用,但我有一个 NSLog 并获得内存结果,比如:
视图控制器:0x8a0bcc0
我试图传递 NSString 而不是 NSDictionary ,但我再次得到内存结果,而不是字符串的值。
我的代码:
UITableView 控制器
NSString *string=@"This is a test string";
[[NSNotificationCenter defaultCenter] postNotificationName: @"Update" object: string];
视图控制器
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"Update" object:nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"Update" object:self];
这是incomingNotification 选择器方法:
-(void) incomingNotification : (NSNotification *)notification{
NSLog(@"Trying to print : %@",[notification object]);
}
所有通知都发生在 ViewDidLoad 方法中。谢谢!
更新
最后,我放弃使用 NSNotificationCenter 并使用属性来传递数据,稍微改变了我的 TableViewController 的继承性。不知道为什么通知不起作用,因为他们应该这样做。谢谢大家,非常感谢您的建议和想法:)