0

私はObjectiveCを初めて使用するので、これがばかげた質問である場合はご容赦ください(そして私は検索しました!)

xcode(4.4.1)でストーリーボードを使用していて、2つのUIViewControllerをプログラムで切り替えようとしています(これが正しい用語かどうかわかりませんか?)

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"BookingView"];
    [self presentModalViewController:vc animated:YES];

上記のコードはプロジェクトの後半で完全に機能しますが、最初のUIViewControllerのviewdidloadメソッドでif()を呼び出そうとすると、機能しません。助けてください!

4

2 に答える 2

1

viewDidLoad:メソッドでそのようなタスクを実行しないでください。ビューコントローラを、メモリに割り当てられてロードされただけの別のコントローラの上にモーダルで表示しようとしていますが、まだ表示されていません。つまり、プレゼンテーションは機能しません。コードをviewDidAppearに移動する必要があります。

ビューコントローラの委任に関する基本を学ぶために、このガイドを読むことをお勧めします:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html%23//apple_ref/doc/uid/ TP40007457

于 2012-10-01T12:55:55.463 に答える
0

self.storyboard代わりになぜ[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];ですか?

すべてのビューコントローラが同じストーリーボードからのものであると仮定します:)

于 2012-10-01T12:55:06.773 に答える