关闭模态视图控制器,然后执行segue

时间:2014-01-26 09:21:30

标签: ios iphone objective-c uiviewcontroller segue

我正处于创建应用程序的早期阶段并遇到了问题。基本上,我正在使用Parse SDK注册/登录后端。 loginViewController是初始视图控制器。点击'注册'后,signupViewController以模态方式呈现。用户登录后,我希望以模态方式显示包含应用程序其余部分的标签栏控制器。

到目前为止,这是故事板:

Storyboard Image

现在,当用户登录时,我会在登录和注册之间执行手动segue。这非常有效。我的问题是,对于注册视图控制器执行相同操作的最佳做​​法是什么?我应该在它和标签栏控制器之间创建另一个手动segue,还是在某种程度上我可以先解除它,然后从登录视图控制器执行segue。

我在Apple的文档和其他一些网站上找到了答案,但没有任何成功。任何有关此事的帮助都将受到极大的赞赏!

2 个答案:

答案 0 :(得分:1)

您可以让loginViewController“了解”事物的状态并处理路由。例如:

  • 在全局范围中添加一个布尔属性,可能在AppDelegate中,名为signedUp,默认为false
  • 用户登录,注册vc已打开
  • 用户注册,成功时将signedUp prop设置为true
  • 注册vc弹出,用户返回登录vc
  • 在loginvc viewDidAppear中检查signedUp = true和segue to 标签栏控制器

另一种选择是将登录和签名视图控制器合并为一个,并根据模式显示/隐藏窗体上的控件,这样只需要一个vc即可简化流程。

答案 1 :(得分:0)

我可以建议一个选项。您可以使用方法实例化视图控制器

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
id controllerToPush = [storyboard instantiateViewControllerWithIdentifier:@"desiredViewController"];

(在界面构建器中指定了MainStoryboard_iPhone和desiredViewController)。然后按下这个控制器。例如,如果您正在使用导航控制器模式:

[self.navigationController setViewControllers:@[controllerToPush] animated:YES];