在多个视图控制器中为一个观察者使用NSNotificationCenterselect器

我可以在多个视图控制器中使用select器getUpdate: 我注册我的LevelViewController作为WinViewControllerWinViewController观察员。 后者2视图控制器都有一个后退button(当按下时,它会弹回到LevelVC ),通知的想法是告诉LevelVC是否更新集合视图单元格(通过viewWillAppear:方法)何时后退button被按下。

viewWillAppear: ,我不想调用两个独立的方法(一个来自GameVC ,另一个来自WinVC ),以获得我的更新,我只是一个可以使用的stream体方法。

这是我打算(在LevelVC ):

 - (void)viewDidLoad { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getUpdate:) name:@"getUpdateForCell" object:nil]; } 

并纳入

 - (void)getUpdate:(NSNotification *)notification { NSDictionary *data = [notification userInfo]; // pop } 

两次…一次在GameVC ,另一次在GameVC中。

这可能吗? 或者我应该只做两个单独的通知?

您可以创build自己的NSDictionary ,并将其作为userInfo的值传递,以确定您来自哪个UIViewController ,并使用if语句来适当地处理这种情况。

另外

当后退button出现时,可以使用委托来执行事件,并对先前的UIViewController执行相应的操作。 我个人更喜欢这种方法。