故事板中的PresentModalViewController以编程方式iOS 5

iOS*_*Dev 5 presentmodalviewcontroller ios5 uistoryboard

我在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];
    }
}
Run Code Online (Sandbox Code Playgroud)

mat*_*tsr 10

到目前为止你所做的似乎是正确的..你还记得在故事板中实际设置B的标识符吗?

此外,您可能想尝试

[self.storyboard instantiateViewControllerWithIdentifier:@"B"];
Run Code Online (Sandbox Code Playgroud)

而不是你在做什么.

更新:

这是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];

    }

}
Run Code Online (Sandbox Code Playgroud)

此外,我从图像中看到您的第一个视图控制器未设置为任何特定类.它只是说"View Controller",而第二个正确显示"Login View Controller".

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