所有 UIVIewController 实时更新
Realtime update in all UIVIewController
我有这样的情况。
假设 VC A 有一些具有类似功能的事件列表
当用户单击任何事件时,他们可以重定向到它的详细信息页面,其中有事件组织者的名称
单击事件组织者加载所有事件
现在,如果我喜欢那个组织者的一个活动,那么它也会反映在 VC A.
我想到了三种方式
1) 我使用了 NSNotificationCenter 但它触发了多次,因为相同的 VC 在循环
中出现了多次
2) 这种情况下也不可能进行委托链接
3) KVO 也不兼容,因为在配置文件中新 api 调用发生
目前我正在为此使用数据库,但在 ViewWillAppear 中有很多代码需要更多管理
您可以使用 NSNotificationCenter
!
你的每一次ViewWillAppear
都喜欢,
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"EventChangeOfOrganizer" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(eventChangeOfOrganizer:)
name:@"EventChangeOfOrganizer"
object:nil];
并从您的详细信息屏幕中的事件更改,
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"EventChangeOfOrganizer" object:nil];
});
Swift :
在swift,
中应该是这样的
NSNotificationCenter.defaultCenter().removeObserver(self, name: "EventChangeOfOrganizer", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("eventChangeOfOrganizer:"), name: "EventChangeOfOrganizer", object: nil)
dispatch_async(dispatch_get_main_queue()) {
NSNotificationCenter.defaultCenter().postNotificationName( "EventChangeOfOrganizer", object: nil)
}
我有这样的情况。 假设 VC A 有一些具有类似功能的事件列表 当用户单击任何事件时,他们可以重定向到它的详细信息页面,其中有事件组织者的名称 单击事件组织者加载所有事件 现在,如果我喜欢那个组织者的一个活动,那么它也会反映在 VC A.
我想到了三种方式
1) 我使用了 NSNotificationCenter 但它触发了多次,因为相同的 VC 在循环
中出现了多次2) 这种情况下也不可能进行委托链接
3) KVO 也不兼容,因为在配置文件中新 api 调用发生
目前我正在为此使用数据库,但在 ViewWillAppear 中有很多代码需要更多管理
您可以使用 NSNotificationCenter
!
你的每一次ViewWillAppear
都喜欢,
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"EventChangeOfOrganizer" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(eventChangeOfOrganizer:)
name:@"EventChangeOfOrganizer"
object:nil];
并从您的详细信息屏幕中的事件更改,
dispatch_async(dispatch_get_main_queue(), ^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"EventChangeOfOrganizer" object:nil];
});
Swift :
在swift,
中应该是这样的 NSNotificationCenter.defaultCenter().removeObserver(self, name: "EventChangeOfOrganizer", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("eventChangeOfOrganizer:"), name: "EventChangeOfOrganizer", object: nil)
dispatch_async(dispatch_get_main_queue()) {
NSNotificationCenter.defaultCenter().postNotificationName( "EventChangeOfOrganizer", object: nil)
}