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

标签 ios xcode layout hierarchy loginview

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

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

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

enter image description here

当应用程序启动时,如果用户登录 LogInViewController 'segues' 到 TabBarController,一切都很好。当用户在 ProfileViewController 中注销时,此 ViewController 中将有一个“segueing”到初始 View Controller 。

另一方面,如果没有用户登录,LogInViewController 会呈现一个 View ,以便用户可以插入用户名和密码。如果凭据正确,LogInViewController 将“segues”到 TabBarController。问题是,此时,即使应用程序仍然运行良好,我也会收到以下警告:

Warning: Attempt to present TabBarViewController: 0xa19a670 on UINavigationController: 0xa526370 while a presentation is in progress!

所以我认为这不是处理所有登录/注销过程的最佳方法。

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

最佳答案

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

发生困惑

另一种方法是将所有 ViewControllers 放入 MutbaleArray 中,并根据要显示的 View 设置 TabBarController 的当前索引?如果您不想在用户登录后显示登录屏幕,只需将其从 MutableArray 中删除,请检查我的答案 here ,这可能对你的事业有帮助

关于ios - 如何在 Xcode 上管理登录和注销过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115155/

相关文章:

ios - NSNotificationCenter 无法将事件指示器设置为隐藏

Android:实现联系人应用程序布局

Java GUI 将布局放置在 boxlayout 下

ios - 想要使用 Scenekit 更改节点的 y 值

ios - 拖放 2 个不同的 View

ios - 在iOS上相当于runTaskLater()

ios - 如何在 Facebook 上传/分享视频?

ios - 作为 XIB 的 TableViewCell 中的 Collection View

java - java中最佳swing的布局解决方案

iOS viewController 和DetailViewController 流程​​/设计