5

我第一次在我的 iOS 应用程序中使用故事板。我的故事板(A 和 B)中有 2 个视图。假设 A 是我故事板中的初始视图控制器。当我的应用程序启动时,我可以看到视图控制器 A。到目前为止,一切都按预期工作。现在在我的视图控制器 A 中,我正在检查用户是否已登录。如果用户未登录,那么我想呈现视图控制器 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];

    }

}

此外,我从图像中看到您的第一个视图控制器未设置为任何特定类。它只是说“视图控制器”,而第二个正确显示“登录视图控制器”。

注意:我现在无法访问 Xcode,所以我还没有测试它。

于 2012-07-26T10:26:25.587 回答