我可以在多个视图控制器中使用选择器getUpdate:
吗?我正在注册LevelViewController
作为GameViewController
和WinViewController
的观察员。后两个视图控制器都有一个后退按钮(当按下时,弹出你回到LevelVC
),通知的想法是告诉LevelVC
是否更新集合视图单元格按下后退按钮时(通过viewWillAppear:
方法)。
在viewWillAppear:
中,我不想调用两个单独的方法(一个来自GameVC
,一个来自WinVC
)以获取我的更新,我只是一个流畅的方法,可用于任何一种。
这是我想要的(在LevelVC
中):
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getUpdate:)
name:@"getUpdateForCell"
object:nil];
}
并合并
- (void)getUpdate:(NSNotification *)notification {
NSDictionary *data = [notification userInfo];
// pop
}
两次......一次在GameVC
,另一次在WinVC
。
这可能吗?或者我应该只发两个单独的通知?
答案 0 :(得分:0)
您可以创建自己的NSDictionary
并在userInfo
中作为值传递,以确定您来自哪个UIViewController
并使用if
语句正确处理该情况。
<强>替代地强>
您可以使用委托在后退按钮出现时执行事件,并对之前的UIViewController
执行适当的操作。我个人更喜欢这种方法。