-1

最初の画面に小さなゲームをロードするためのボタンがあります。コードは次のとおりです。

- (IBAction)playButtonPressed:(id)sender
 {

[self startGameWithConfig:[RootViewController singleplayerGameConfig]];

        NSLog(@"play again");

 }

ゲームページ内に、このボタンを使用したときに最初の画面に戻るボタンがあります。戻ることはできますが、playButtonPressedが機能しなくなり、NSLogが出力されますが、ボタンはゲームをロードしません。

これが私の戻るボタンです:

- (IBAction)return:(id)sender {

RootViewController *b = [[RootViewController alloc] init];
[self presentModalViewController:b animated:YES];

}

この実装を手伝ってくれませんか

前もって感謝します!

これが私のstartGamingWithConfigです

- (void) startGameWithConfig:(GameConfig *)config
{
// fade in the loading screen to hide load time
[_loadingView setHidden:NO];
[_loadingView setAlpha:0.0f];
[UIView animateWithDuration:0.2f
                      delay:0.0f
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     [_loadingView setAlpha:0.0f];
                 }
                 completion:^(BOOL finished){
                     CardsViewCtrl* newController = [[CardsViewCtrl alloc] init];
                     newController.gameConfig = config;
                     AppDelegate *delegate = (AppDelegate *)[[UIApplication 
sharedApplication] delegate];
                     [delegate.navController pushFadeInViewController:newController 
animated:YES];

                 }];
}
4

1 に答える 1

0

見出しがないため、このコードがどこにあるかを理解するのは少し難しいですが、RootViewController に戻ろうとすると、新しいものを作成してスタックにプッシュしているように見えます。ビューを追加するのではなく、topViewController が削除されていることを確認する必要があります。

したがって、スターターはreturnメソッドを置き換えてみてください:

- (IBAction)return:(id)sender {
    RootViewController *b = [[RootViewController alloc] init];
    [self presentModalViewController:b animated:YES];
}

これとともに:

- (IBAction)goBack:(id)sender {
    [self dismissModalViewController];
}

ビュー階層がどのように設定されているかわかりませんが、動作中のナビゲーションコントローラーがある場合は、使用してみてください[self.navigationController popNavigationController:YES];

于 2013-02-06T15:42:38.143 に答える