如何在应用程序进入后台之前调用场景方法?
Posted
技术标签:
【中文标题】如何在应用程序进入后台之前调用场景方法?【英文标题】:How to call scene method before application goes to background? 【发布时间】:2013-11-01 22:47:52 【问题描述】:我需要在游戏进入后台之前暂停游戏,所以当再次进入前台时,我会在游戏中看到暂停对话框。为了显示暂停对话框,我有一个场景方法。我看到下面的方法是正确的地方:
-(void) applicationDidEnterBackground:(UIApplication*)application
if( [navController_ visibleViewController] == director_ )
[director_ stopAnimation];
我应该直接从导演runningScene
那里得到场景,将它投射到我的场景类中,然后向它发送暂停消息还是这样很丑?
【问题讨论】:
【参考方案1】:在这种情况下,我认为通知是最干净和最安全的选择。您可以从 applicationDidEnterBackground 发布通知并接收您想要执行某些操作的任何位置,例如:
在应用代理中:
- (void)applicationDidEnterBackground:(UIApplication*)application
[[NSNotificationCenter defaultCenter] postNotificationName:@"EnteringBackground" object:nil];
在游戏场景中:
- (void)onEnter
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showPausePopup) name:@"EnteringBackground" object:nil];
- (void)onExit
[[NSNotificationCenter defaultCenter] removeObserver:self];
- (void)showPausePopup:(NSNotification*)notification
// Code to show popup
【讨论】:
以上是关于如何在应用程序进入后台之前调用场景方法?的主要内容,如果未能解决你的问题,请参考以下文章
当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]