2015-11-11 48 views
2

我有4次,CheckAuthenticationView,HomeView,LoginView和DetailsView一个应用程序的图。执行SEGUE于可能尚未创建

当用户开始该应用程序加载的第一个观点是CheckAuthenticationView。该视图检查登录信息的钥匙串,如果存在,则尝试自动登录用户,如果成功,则继续登录到DetailsView。如果没有信息存在,它会对HomeView执行一个循环,然后用户可以继续登录。

现在在DetailsView控件我有一个按钮,以便用户可以注销。如果点击,这会清除所有登录信息并执行退出(退出)继续到HomeView。

如果用户不注销,但杀死应用程序(重启手机等),CheckAuthenticationView应该产生一个成功的结果意味着DetailsView控件会自动加载。如果是这种情况,当我点击注销时,segue不会触发,用户仍然在DetailsView上。

我猜想那是因为HomeView实际上尚未创建的,因此没有什么可Segue公司的SEGUE不会发生。有没有办法延续到尚未创建的视图?

谢谢

回答

0

你是什么意思,尚未创建?如果您还没有在故事板中创建ViewController或任何类型的视图,那么您不能继续浏览不存在的视图。如果你已经创建了它,那么你可以叫:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 
UIViewController *homeView = [storyboard instantiateViewControllerWithIdentifier:@"HomeView"]; 
[self presentViewController:vc animated:YES(or NO) completion:nil]; 
+0

嗨,我在斯威夫特,self.performSegueWithIdentifier(“unwindToHome”,发件人:个体经营)调用,如果用户注销。我面临的问题是,如果用户杀死并重新启动应用程序,HomeView将被绕过,因为自动登录脚本会将用户直接带到DetailsView。 – puks1978

+1

只要目标视图**控制器**在故事板中定义(并分配了有效的类),并且其中的segue被命名为sotryboard,'performSegueWithIdentifier()'应该创建视图控制器,对? –

+0

不确定。 segue被命名并且视图控制器被定义为如果我手动执行登录(而不是通过Check视图),那么一切都按预期工作。如果DetailsView是从CheckAuthenticationView加载的,当我点击注销按钮后,所有的用户默认等都被删除,只是没有继续。 – puks1978