我可以在多个视图控制器中使用 NSNotificationCenter 选择器方法吗?
Can I use NSNotificationCenter selector method in multiple view controllers?
我有这个 ViewControllerA
将 ViewControllerB
推送到导航堆栈,然后将 ViewControllerC
推送到堆栈。
从ViewControllerB
,我可以弹出到ViewControllerA
。
从 ViewControllerC
,我可以弹出到 ViewControllerA
。
我需要从 B
和 C
传递一个 NSNumber
到 ViewControllerA
(取决于我使用哪个控制器弹出到 A
).
我将合并以下内容:
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getUpdate:)
name:@"getUpdateForCell"
object:nil];
}
并实施:
- (void)getUpdate:(NSNotification *)notification {
NSDictionary *data = [notification userInfo];
// pop
}
我可以在 ViewControllerB
和 ViewControllerC
中 use/implement getUpdate:
吗?
对于从 ViewControllerC
到 ViewControllerB
这样的连接,您可以使用 @protocol
(委托设计模式)。但是对于你需要更新的东西不是从一个地方的任务,你需要使用 NSNotificationCenter
所以你对当前任务的实现是正确的。
我有这个 ViewControllerA
将 ViewControllerB
推送到导航堆栈,然后将 ViewControllerC
推送到堆栈。
从ViewControllerB
,我可以弹出到ViewControllerA
。
从 ViewControllerC
,我可以弹出到 ViewControllerA
。
我需要从 B
和 C
传递一个 NSNumber
到 ViewControllerA
(取决于我使用哪个控制器弹出到 A
).
我将合并以下内容:
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getUpdate:)
name:@"getUpdateForCell"
object:nil];
}
并实施:
- (void)getUpdate:(NSNotification *)notification {
NSDictionary *data = [notification userInfo];
// pop
}
我可以在 ViewControllerB
和 ViewControllerC
中 use/implement getUpdate:
吗?
对于从 ViewControllerC
到 ViewControllerB
这样的连接,您可以使用 @protocol
(委托设计模式)。但是对于你需要更新的东西不是从一个地方的任务,你需要使用 NSNotificationCenter
所以你对当前任务的实现是正确的。