私はiPhoneの初心者プログラマーです。初めてのゲーム/アプリの開発で、自分に問題が発生しました (問題を作成しました)。私はこれを調査しましたが、答えを見たと思いますが、アプリケーションでそれらを機能させる方法がわかりません。
ウェルカム、プレイ、ハイスコア、設定、概要など、いくつかのビューコントローラーを持つゲームがあります。認識しているナビゲーション コントローラーまたはルート コントローラーを持っていません。編集 - rootview コントローラーができました - [self.window setRootViewController:viewController];
appDelegate.m ファイルに追加しました
ウェルカム スクリーン/ビュー コントローラーから、Play ビュー コントローラー、about ビュー コントローラー、ハイ スコア ビュー コントローラー、または prefs ビュー コントローラーに移動できます。ウェルカムビューコントローラーを閉じることができるように、私が今行っている新しいコントローラーを担当させたいと思います。実際、View Controller にアクセスするときはいつでも、他の View Controller をメモリから消去できるようにしたいと考えています。ほとんどのビューコントローラーからほとんどのビューコントローラーにアクセスできます。
これを使用して新しいView Controllerに移動します:
- (IBAction)playGameAction:(id)sender {
FlipTestViewController *myViewController = [[FlipTestViewController alloc]
initWithNibName:@"FlipTestViewController" bundle:nil];
[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:self.view cache:YES];
[self.view addSubview:myViewController.view];
[UIView commitAnimations];
}
FlipTestViewController (再生コントローラー) で安全に作業を終えたら、WeclomeViewController を解放するにはどうすればよいですか? そして、新しいコントローラーに、それが現在担当していて、他のコントローラーが離れることができることをどのように伝えることができますか? 私は意味のある質問をしていますか?応答するときは、短い単語と具体的な例を使用してください。ありがとうございました!
rdelmar のアドバイスに従って、RootvVewController をボタン コードに変更するための呼び出しを追加してみました。これは、新しい viewController を起動するために使用するコードです。
- (IBAction)playGameAction:(id)sender {
FlipTestViewController *myViewController = [[FlipTestViewController alloc]
initWithNibName:@"FlipTestViewController"
bundle:nil];
[UIApplication sharedApplication].delegate.window.rootViewController = myViewController;
[UIView beginAnimations:@"flipview" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
forView:self.view cache:YES];
[self.view addSubview:myViewController.view];
[UIView commitAnimations];
}
案の定、コメントを見ると、FlipTestViewController (私の Play コントローラー) が新しい RootViewController です。残念ながら、空白の白い画面が表示され、どのような遷移も行われず、FlipTestViewController の ViewDidDisappear が何らかの形で呼び出されていることを示すログ メッセージが表示されます。おそらく、ウェルカム画面がまだ何とか残っているからでしょう。おそらくメモリ管理の問題?これを新しい質問に持っていくべきですか?
main.xib ファイルの背景色を変更したところ、明らかにそれが表示されている画面 (空白の白い画面) です。