基于用户类型的不同视图 - 登录后更正segue类型?

时间:2014-06-26 15:25:03

标签: ios xcode ios7 xcode5 segue

我有一个Login View Controller,它是初始视图控制器。在这里,用户输入他们的用户名和密码,然后将其发送到服务器进行检查。如果用户输入了正确的凭证,则服务器会响应一些JSON数据,包括用户类型(“学生”或“演示者”)。我正在使用返回的用户类型来决定用户将看到的视图。 (用户将看到不同的标签控制器)

我正在努力的一点是要执行什么类型的segue。推或模态?我尝试将导航控制器嵌入到Login View Controller中并对正确的视图执行Push Segue,但这似乎与其他视图中嵌入的其他导航控制器(标题消失等)不太匹配。

在这种情况下,模态segue类型是正确的吗?用户根本不会返回登录屏幕。

1 个答案:

答案 0 :(得分:1)

请记住,您不能嵌套导航控制器。将导航控制器推送到导航堆栈会导致您看到错误标题等类型的错误。始终以模态方式转换为导航控制器,并在需要时使用展开segue返回。

push segue专门用于将目标视图控制器推送到导航堆栈。在推送segue之前,初始视图控制器必须位于导航堆栈中。如果您的登录视图是导航控制器的根视图,那么推送下一个视图即可。

另一方面,听起来可能就是这种情况,如果您的登录视图是您的初始视图,并且您想要转换为包含不同用户角色的不同路径的两个不同的导航控制器,您将需要模态化导航控制器本身。

Apple的一些参考资料: https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/UsingViewControllersinYourApplication/UsingViewControllersinYourApplication.html#//apple_ref/doc/uid/TP40007457-CH6-SW1

相关问题