2012-07-26 14 views
5

私はiOSアプリケーションでストーリーボードを最初に使用しています。私はストーリーボード(A & B)で2つのビューを持っています。 Aは私のストーリーボードの最初のビューコントローラです。私のアプリが開かれたら、私はビューコントローラAを見ることができます。これまでのところ、evrythingは期待どおりに動作しています。今私のビューコントローラでは、私はユーザーがログインしているかどうかを確認しています。ユーザーがログインしていない場合は、View Controller Bを表示します。PresentModalViewControllerを使用してプログラムでBモーダルを表示するにはどうすればよいですか?ここでストーリーボードのPresentModalViewControllerはプログラム的にiOS 5

ここに私のセットアップ

enter image description here

は、ヘルプの任意の種類が評価され、私のコード

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    if (!isUserLoggedIn) { 
     NSLog(@"USER NOT LOGGED IN...."); 
     UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
     LoginViewController *vc = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 
    } 


} 

です。ありがとう

答えて

10

あなたがこれまで行ってきたことは正しいようです。実際にストーリーボードにBの識別子を設定するのを忘れましたか?

また、あなたの代わりに何をやっているの

[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 

をしようとする場合があります。

更新:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    if (!isUserLoggedIn) { 

     NSLog(@"User is not logged in."); 

     LoginViewController *vc = (LoginViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 

    } 

} 

はまた、私はあなたの最初のビューコントローラは、任意の特定のクラスに設定されていない画像から参照してください。

はここviewDidLoad方法がどのように見えるかです。それはちょうど "View Controller"と呼ばれ、2つ目は "Login View Controller"を正しく示しています。

注:私はまだXcodeにアクセスできないので、まだテストしていません。

+0

識別子が正しく設定されています。上の行はどこに書かなければならないのですか?コードから何を削除すればよいですか? – iOSAppDev

+0

@iOSAppDev:Ok。今投稿したコードを試してみてください。それがうまくいかない場合は、間違っている/見つからないことがあります。また、これらのコード行が実際に実行されていることを確認してください。表示したいView Controller(LoginViewController)の 'viewDidLoad'に' NSLog'文を追加して、ロードされていることを確認することもできます。 – matsr

関連する問題