2012-03-12 36 views
4
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" 
                bundle: nil]; 

MenuScreenViewController *controller = (MenuScreenViewController*)[mainStoryboard 
               instantiateViewControllerWithIdentifier: @"<Controller ID>"]; 

ここで、現在のビューが識別子でインスタンス化されていることを確認する必要がありますか?つまり、このクラスにコードを書くと、このビューコントローラが読み込まれたときに表示されますか?どのように私はそれを使用するだろうか?私はmenuscreenviewcontrollerのインスタンスを作成したくありません。私は自己を言う必要があることを意味するが、私はself.viewを使用し、それはdoesnt仕事。どのようにinstantiateViewControllerWithIdentifierを使用するのですか

答えて

7

作成したView Controllerをプッシュまたは表示する必要があります。インスタンス化によって、コントローラのビューを直接変更することはできません。小さな編集で、UğurKumruの答えを1として

MenuScreenViewController* controller = (MenuScreenViewController*)[ourStoryBoard instantiateViewControllerWithIdentifier:@"<Controller ID>"]; 

controller.controlFlag = YES; 
controller.controlFlag2 = NO; // Just examples 

//These flags will be set before the viewDidLoad of MenuScreenViewController 
//Therefore any code you write before pushing or presenting the view will be present after 

[self.navigationController pushViewController:controller animated:YES]; 
// or [self presentViewController:controller animated:YES]; 
+0

に直面するだろうnilをありがとうございました。しかし、もし私がこの画面をスプラッシュ画面の後に表示したいのであれば、どうすればいいですか?私はちょうどこの画面を、スプラッシュ画面のロードが完了したときに表示されるこの画面のそれぞれのコードと同期させたい。私はスプラッシュスクリーンのクラスを持っていません。そのちょうどdefault.png – CodeGeek123

+2

- (BOOL)アプリケーションを使用することができます:(UIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions;または、そのviewControllerをストーリーボードのrootViewコントローラとして直接設定することもできます。単にnavigationControllerをドラッグし、viewControllerをそのnavigationControllerのrootViewControllerとして設定します。コードで行う場合は、このviewControllerをrootViewControllerとして設定するか、rootViewControllerコンストラクタでUINavigationControllerを作成し、上で作成したコントローラをパラメータとして配置します。 –

2

は、たとえば、あなたは、トランジション(多分ボタンアクション)をトリガするためにこのコードを使用する必要がありますあなたはナビゲーションコントローラを使用していない場合は、

MenuScreenViewController* controller = (MenuScreenViewController*)[ourStoryBoard instantiateViewControllerWithIdentifier:@"<Controller ID>"]; 
[self presentViewController:controller animated:YES completion:nil]; 

あなたが完了したことを省略した場合:あなたは、あなたが使用する必要があります5.0+ iOS版に対して開発しているあなたは、エラー

関連する問題