0

我已经为此苦苦挣扎了很长时间,所以我最终放弃了尝试寻找答案并决定立即问它。

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

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

在此处输入图像描述

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

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

警告:在演示过程中尝试在 UINavigationController: 0xa526370 上呈现 TabBarViewController: 0xa19a670!

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

我的问题是,我应该将 LogInScreen 放在层次结构中的哪个位置?如果我的布局/层次结构是正确的,如何让警告消失?

4

1 回答 1

1

您应该将您的主屏幕设置为您的rootViewController,并且一旦您的应用程序启动或激活,您可以检查用户是否已登录,如果没有,则以模式显示 LoginScreen,这将避免与其他NavigationControllerTabBarController

另一种可能是把所有的都ViewControllers放在一个中并根据你想显示的视图MutbaleArray设置当前的索引?TabBarController如果您不想在用户登录后显示 LoginScreen,只需将其从您的 中删除,在此处MutableArray查看我的答案,这可能有助于您的事业

于 2013-02-27T14:58:29.407 回答