objective c(ipad)dismissViewControllerAnimated无法正常工作

时间:2013-02-12 06:42:19

标签: ios objective-c xcode ipad uisplitviewcontroller

我有一个splitviewcontroller,如果需要登录,它会调用loginview控制器。这就是我所谓的模态视图

if([[NSUserDefaults standardUserDefaults] objectForKey:@"username"] == nil){
        [self performSegueWithIdentifier:@"LoginSegue" sender:self];
    }

这就是我的故事板的样子:

                                    --- uinavigation
                       - masterview |
uispliviewcontroller
                       - detailview |
                                    --- main dashboard view -(LoginSegue)--loginviewcontroller
                                             |
                                             |------ another viewcontroller

现在我可以毫无问题地访问loginview,然后我会尝试解除模态,以便它可以使用此回到maindashboard视图

if([[NSUserDefaults standardUserDefaults] objectForKey:@"username"] != nil){

        [self dismissViewControllerAnimated:YES completion:nil];
    }

但它不会做任何事情。

想知道如何正确地解除登录后调用的模态视图?

非常感谢任何建议。

感谢!!!

1 个答案:

答案 0 :(得分:3)

对于登录,模态演示可能更有意义。不要将它与segue连接,而是给LoginViewController一个Storyboard ID,比如“LoginViewController”。 (删除segue到它,在storyboard中选择登录vc并在身份检查器中找到storyboard id字段。)

然后,代替performSegue,这样做......

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self presentViewController:vc animated:YES completion:^{}];

完成此操作后,解雇将按照您的预期运作。