NSNotification とそのオブザーバーのライフサイクルに関していくつかの問題があります。
アップデート。
アプリのロジックを単純化するため、原始的に見えます。
ViewController A には「コメント」ボタンがあり、UIView B も含まれています。この UIView には、別のボタン「共有」があります。ユーザーがログインしている場合、各ボタンは本来の動作を行います。ログインしていない場合は、NSObject クラス「ロジスティック」(ほとんどのロジックがある場所) から「ログイン」メソッドを呼び出し、ポップアップ ビュー 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 でそれを行う方法は?
よろしく。