2014-01-26 53 views
1

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

这里的故事板至今:

Storyboard Image

现在,当用户登录时,我进行登录和注册的手动SEGUE。这是完美的。我的问题是,为注册视图控制器做同样的事情最好的做法是什么?我应该在它和标签栏控制器之间创建另一个手动循环,还是有一些方法可以先解除它,然后从登录视图控制器执行循环。

我在Apple的文档和其他几个网站上找到了答案,但没有取得任何成功。任何关于此事的帮助将非常感激!

+1

为什么选择signupViewController的模态segue?您可以通过推入segue来注册屏幕,然后再推送到下一个tabBar控制器。 – Wisors

+0

这就是我原来的做法,但我认为将应用程序的内容堆叠在登录屏幕之上会更有意义,以便在用户注销所有子视图控制器时将其释放。这是一个正确的假设吗? – Akyri

+0

您可以制作-popToRootViewControllerAnimated:在注销行为的情况下,所有子视图控制器也将被释放。 – Wisors

回答

0

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

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

(MainStoryboard_iPhone和desiredViewController在界面生成器中指定)。然后推这个控制器。例如,如果您使用的是导航控制器模式:

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

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

  • 在全球范围内增加一个布尔值属性,也许在AppDelegate中,命名为喜欢signedUp,默认为false
  • 用户登录,注册VC打开
  • 用户注册,在成功,设置signedUp丙为true
  • 注册VC被弹出,用户返回上登录VC
  • 在loginvc viewDidAppear检查是否signedUp =真,原因请看 标签栏控制器

另一种选择是将登录和标记视图控制器合并为一个,并根据模式显示/隐藏表单上的控件,然后只需一个vc即可简化流程。

+0

我准备在某个时候使用它。谢谢你 – AndrewSB

相关问题