1

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

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

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

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

现在我可以毫无问题地进入登录视图,然后我会尝试关闭模式,以便它可以使用它返回到主仪表板视图

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

        [self dismissViewControllerAnimated:YES completion:nil];
    }

但它不会做任何事情。

想知道如何正确关闭登录后调用的模式视图?

非常感谢任何建议。

谢谢!!!

4

1 回答 1

3

对于登录,模式演示可能更有意义。与其将它与 segue 连接,不如给 LoginViewController 一个 Storyboard ID,例如“LoginViewController”。(删除segue,在storyboard中选择login vc,在identity inspector中找到storyboard id字段)。

然后,而不是performSegue,这样做......

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

完成此操作后,dismiss 将按您的预期运行。

于 2013-02-12T06:51:54.983 回答