NSNotificationCenter在ViewDidLoad

时间:2016-12-05 23:57:16

标签: objective-c xcode nsnotificationcenter jasidepanels

我在我的应用程序中使用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执行代码一次,当代码第一次执行时mustRun bool转到NOleftPanelMsg),但是在再次调用leftPanelMsg时的下一个通知mustRun将其值恢复为true,不知道为什么

1 个答案:

答案 0 :(得分:1)

看起来该库提供了一个回答sidePanelController的视图控制器扩展。所以你的vc可以直接询问......

#import "UIViewController+JASidePanel.h"
// ...

if (self.sidePanelController.centerPanel == self) {
    // observe notification
}

或者您可以问:

if (self.sidePanelController.leftPanel == self) // ... and so on