如何在Xcode上管理登录和注销过程

时间:2013-02-27 14:54:32

标签: ios xcode layout hierarchy loginview

我很久以来一直在努力解决这个问题,所以我终于放弃了试图找到答案并决定马上问一下。

在我的应用上,我有一个用户登录页面。该应用程序有一个TabBarViewController,其中包含一些NavigationControllers项目。

我最后的努力是将登录屏幕嵌入NavigationBarController并使其成为初始视图控制器,如下图所示。

enter image description here

当应用程序启动时,如果用户登录LogInViewController'segues'到TabBarController,一切都很好。当用户在ProfileViewController中注销时,此ViewController中有一个segue'segueing'到初始视图控制器。

另一方面,如果没有用户登录,则LogInViewController会显示一个视图,以便用户可以插入用户名和密码。如果凭据正确,则LogInViewController'segues'到TabBarController。问题是,此时,即使应用程序仍然正常工作,我也会收到以下警告:

  

警告:在演示文稿正在进行时,尝试在UINavigationController:0xa526370上显示TabBarViewController:0xa19a670!

所以我认为这不是处理所有LogIn / LogOut进程的最佳方法。

我的问题是,我应该在哪里将LogInScreen放在层次结构中? 如果我的布局/层次结构是正确的,那么如何使警告消失?

1 个答案:

答案 0 :(得分:1)

您应该将主屏幕设置为rootViewController,并且在应用程序启动或变为活动状态后,您可以检查用户是否已登录,如果没有,则显示登录屏幕模式,它将避免混乱与其他NavigationControllerTabBarController

替代可能是将ViewControllers放在MutbaleArray中,并根据您要显示的视图设置当前的TabBarController索引?如果您不希望在用户登录后显示LoginScreen,只需将其从MutableArray中移除,查看我的回答here,这可能有助于您的事业