0

以下の最初の提案で更新されましたが、まだ問題が発生しています: 私は開発者からいくつかの iPhone アプリを継承しましたが、現在、私はほとんどスキルのない開発者です。これらの iPhone アプリの 1 つをユニバーサル (iPhone と iPad) に変換しようとしていますが、もうすぐそこまで来ています。ただ 1 つの問題があります。iPhone ではビューが正しく消えますが、iPad では消えません。ここの誰かが私を助けてくれることを願って、私はこの 1 つの問題 (できればかなり簡単な解決策があることを願っています) に 3 日以上苦労してきました。:)

これの一部は古いコードだと言われましたが、それは本当かもしれませんが、この 1 つの問題がアプリ ストアへの提出を妨げているため、大規模なリファクタリングや再設計のソリューションは今のところ避けたいと思います。では、何が起こっているのか (この投稿のファンキーな書式設定について事前にお詫びします。なぜコードがすべてコーディング形式で行われていないのか、ファンキーな箇条書きの番号付けなどではないのかわかりません):

  1. アプリは、ゲームプレイを開始する「再生」ボタンがあるメイン ビュー コントローラー (MyAppViewController) から開始します。[再生] ボタンがタップされると、次のコードはゲームプレイ ビュー コントローラーをインスタンス化します。

    mainGameViewControllerIpad = [[MainGameViewControllerIpad alloc] initWithNibName:nil bundle:nil]; [self.view addSubview:mainGameViewControllerIpad.view];

これにより MainGameViewControllerIpad ビューが開き、ユーザーはゲームをプレイします。

  1. ゲーム ラウンドが終了すると、MainGameViewControllerIpad のコードは次のことを行います。

    GameStatsViewControllerIpad *gameStatsViewControllerIpad = [[GameStatsViewControllerIpad alloc] init]; [gameStatsViewControllerIpad setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; [self presentModalViewController:gameStatsViewControllerIpad アニメーション:YES];

    [self.view addSubview:gameStatsViewControllerIpad.view];

    [gameStatsViewControllerIpad setStatsDisplay];

これにより、Game Stats ビューが開き、ユーザーは今プレイしたラウンドでの結果を知ることができます。つまり、イントロ画面ビューがあり、そのサブビューとしてゲームプレイ ビュー コントローラーがあり、ゲームプレイ ビューのサブビューとして統計画面があります。これは、iPhone と iPad の両方で正常に動作します。

だから、ここで物事が奇妙になります:

  1. ユーザーが統計の表示を終了したら、統計ページの「完了」ボタンをタップすると、次のコードが実行されます。

[自己却下ViewControllerAnimated:YES完了:nil]; [セルフ ビュー リリース];

ここに問題があります: iPhone では、これにより Stats ビューが閉じられます。Stats ビューは MainGameViewController のサブビューであるため、そのビューも消え、ユーザーは MyAppViewController に返されると思います。正解です。

ただし、iPad では、上記のコードを実行するとすぐに Stats ビューが閉じられますが、それがなくなると、MainGameViewController ビューがまだ表示されていることがわかります。つまり、iPhone では、上記のコードによってサブビューが閉じられ、コンテナ ビューですが、iPad では親/スーパー ビューを閉じません。

MainGameViewController を iPad でも動作させる方法について、かなり簡単な提案はありますか? 洞察/提案をお寄せいただきありがとうございます!

4

1 に答える 1

0

モーダル ビューを削除するのではなく、単に閉じてください。

[self dismissViewControllerAnimated:YES completion:nil];
于 2013-07-03T23:14:44.800 に答える