6

可能重复:
使用 NSNotification 将 NSString 变量传递给其他类

我的问题是:我们是否可以使用来自 Iphone 通知类的 postNotificationName 和 addObserver 将数据从一个视图控制器传递到另一个视图控制器

4

1 回答 1

18

您可以在 API 调用的 userDictionary 元素中传递数据

NSDictionary *aDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
                          anObject, @"objectName", 
                          anotherObject, @"objectId",
                          nil] autorelease];
[[NSNotificationCenter defaultCenter] postNotificationName:@"AnythingAtAll" object:nil userInfo:aDictionary];

您可以从您观察到的入站通知中检索字典。在发布通知之前添加观察者。

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

这可能在您的 init 方法或 viewDidLoad 方法中

-(void)anyAction:(NSNotification *)anote
{
NSDictionary *dict = [anote userInfo];
AnyClass *objectIWantToTransfer = [dict objectForKey:@"objectName"];
}

请注意,您应该在 dealloc 方法中将您的对象作为观察者移除。

[[NSNotificationCenter defaultCenter] removeObserver:self]
于 2012-04-23T20:44:35.423 回答