0

ゲームがバックグラウンドになる前にゲームを一時停止する必要があるため、再びフォアグラウンドになると、ゲームに一時停止ダイアログが表示されます。一時停止ダイアログを表示するには、シーン メソッドがあります。アプリケーションがバックグラウンドになる直前にシーンメソッドを呼び出す方法は? 次の方法が適切な場所であることがわかりました。

-(void) applicationDidEnterBackground:(UIApplication*)application
{
    if( [navController_ visibleViewController] == director_ )
        [director_ stopAnimation];
}

director からシーンを取得し、runningSceneそれをシーン クラスにキャストしてから、一時停止メッセージを送信する必要がありますか?

4

1 に答える 1

0

このシナリオでは、通知が最もクリーンで安全なオプションだと思います。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
}
于 2013-11-01T23:21:23.850 に答える