1

我在我的应用程序中使用带有故事板的JASidePanels并且还使用NSNotificationCenter

问题是:

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(msgResponder:) 
                                         name:@"leftPanelMsg" object:nil];

当要显示它时,它在一次调用中被调用两次,第二次调用时,当我显示左侧面板时,我对两者都使用相同的类,有没有办法阻止这种情况?viewDidLoadstoryboardCenterViewControllerLeftViewController

我已经尝试了以下代码但无法正常工作,

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                        name:@"leftPanelMsg"
                                                      object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(msgResponder:) 
                                                        name:@"leftPanelMsg" 
                                                      object:nil];

此外,我使用 a仅执行了 1 次代码,我boolmustRunbool 转换为NO第一次执行代码的时间(leftPanelMsgleftPanelMsgmustRun

4

1 回答 1

1

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

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

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

或者你可以问:

if (self.sidePanelController.leftPanel == self) // ... and so on
于 2016-12-06T00:20:30.370 回答