我有几个关于 NSNotification 及其观察者生命周期的问题。
UPD。
我将简化我的应用程序的逻辑,使其看起来很原始:
ViewController A 有按钮“评论”,还包含一个 UIView B。在这个 UIView 上,我们还有另一个按钮“分享”。如果用户登录,每个按钮都会执行它应该做的事情,如果没有,它会从 NSObject 类“Logistic”(逻辑最多的地方)调用“login”方法,并出现弹出视图 C。因此,我在 C 中创建了一个 postNotificationName,以使按钮在用户登录时收听 - 完成他们的工作。
例如在 viewController A
- (void) comment{
if (<user_logged_in>){
//do the magic
[self removeObserver];
} else {
[self removeObserver];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(comment) name:@"dismiss_popup" object:nil];
[Logistic login];
}
}
我对“共享”方法(在视图 B 中)做同样的事情,但是当我按下按钮“评论”时,然后跳过 C - 登录弹出窗口,然后按下“共享”按钮,进行登录- 之后,“分享”和“评论”同时开始行动。
我想我应该调用 removeObserver
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"dismiss_popup" object:nil];
但是如何在 UIView B 仍然存在的情况下做到这一点?
问候 。