NSNotificationCenter вызывается дважды в ViewDidLoad
Я использую JASidePanels с раскадровками в моем приложении, а также использую NSNotificationCenter
Проблема в том, что:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(msgResponder:)
name:@"leftPanelMsg" object:nil];
Он вызывается дважды внутри viewDidLoad
один звонок, когда storyboard
будет отображаться CenterViewController
и второй, когда я раскрываю левую панель LeftViewController
Я использую один и тот же класс для обоих, есть ли способ остановить это?
Я попробовал приведенный ниже код, но не работает,
[[NSNotificationCenter defaultCenter] removeObserver:self
name:@"leftPanelMsg"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(msgResponder:)
name:@"leftPanelMsg"
object:nil];
Также я использовал bool
чтобы выполнить код только 1 раз, я включаю mustRun
хулиганить NO
когда код был выполнен в первый раз (leftPanelMsg
), но при следующем уведомлении, когда leftPanelMsg
вызывается снова mustRun
вернуть значение в true, не знаю почему
1 ответ
Похоже, что библиотека предоставляет расширение контроллера представления, которое отвечает sidePanelController
, Так что ваш VC может спросить напрямую...
#import "UIViewController+JASidePanel.h"
// ...
if (self.sidePanelController.centerPanel == self) {
// observe notification
}
или вы можете спросить:
if (self.sidePanelController.leftPanel == self) // ... and so on