这是我的主要故事板:
正如你所看到的那样有一个主TabBarController,但是为了看到TabBarController用户必须先登录(LoginViewController在主TabBarController之外,这是我在TabBar中所有控制器的viewDidLoad中的代码:
if ( ![Client isLoggedIn] ) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:Nil];
UIViewController* loginView = [storyboard instantiateViewControllerWithIdentifier:@"LoginScene"];
[self.navigationController presentViewController:loginView animated:YES completion:nil];
return;
}
但有时(!)这根本不起作用,应用程序挂起(甚至在卸载应用程序时也没有帮助)
在这种情况下,将用户从TabBarController重定向到另一个ViewController(LoginViewController)的正确方法是什么,这不是TabBarController的子代?
答案 0 :(得分:2)
您可以将单独的NavigationViewController
作为manual modal segue
与TabbarController
相关联。
将identifier
设置为segue,然后您可以使用以下代码:
if ( ![Client isLoggedIn] ) {
[self performSegueWithIdentifier:@"MyModalSegue" sender:self];
}
这应该正常工作。此外,您还可以免费获得模态动画。
答案 1 :(得分:0)
试试替换
[self.navigationController presentViewController:loginView animated:YES completion:nil];
与
[self presentViewController:loginView animated:YES completion:nil];