5

iOS アプリで初めてストーリーボードを使用しています。ストーリーボードに 2 つのビューがあります (A & B)。A がストーリーボードの最初のビュー コントローラーであるとしましょう。アプリを起動すると、View Controller A が表示されます。これまでのところ、すべてが期待どおりに機能しています。ビューコントローラーAで、ユーザーがログインしているかどうかを確認しています。ユーザーがログインしていない場合、View Controller Bを提示したい.PresentModalViewControllerをプログラムで使用してBをモーダルに表示するにはどうすればよいですか?

これが私のセットアップです

ここに画像の説明を入力

これが私のコードです

- (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];
    }
}
4

1 に答える 1

10

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

また、試してみることもできます

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

あなたがしていることの代わりに。

アップデート:

メソッドは次のviewDidLoadようになります。

- (void)viewDidLoad {

    [super viewDidLoad];

    if (!isUserLoggedIn) {

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

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

    }

}

また、画像から、最初のView Controllerが特定のクラスに設定されていないことがわかります。「View Controller」とだけ表示されますが、2 つ目は「Login View Controller」と正しく表示されます。

注: 現在、Xcode にアクセスできないため、まだテストしていません。

于 2012-07-26T10:26:25.587 に答える