【发布时间】:2013-02-09 07:04:09
【问题描述】:
当您想在带有 TabBarController 的应用中将 LoginViewController 呈现为“ModalViewController”时,我正在寻找有关最佳实践方法的反馈。
情况是这样的: - 应用程序支持具有登录/注销功能的用户会话 - 当应用程序启动时,它会尝试自动登录并直接显示 TabBarController 或 LoginViewController(显示为 ModalViewController 以在登录时启用关闭动画) - 应用程序有一个带有多个选项卡的 TabBarController。 - 每次呈现 ViewController 时都会检查用户的状态 - 如果用户没有登录 ModalViewController 应该显示登录功能 - 如果用户手动注销,应该显示相同的 ModalViewController
我尝试了几种不同的设计来处理这个问题,但没有人觉得完全“正确”。我曾在一个项目中使用子类 UIWindow 处理此问题,该子类 UIWindow 替换了应用程序的默认 UIWindow。然后子类监听不同的通知,例如“UserLoggedInSuccessfully”、“UserLoggedOut”等,以处理 ModalViewController 的呈现。
还有其他解决方案吗?对于这种解决方案的任何意见和经验,我将不胜感激。
【问题讨论】:
-
切换标签页时为什么要检查用户是否登录?如果需要登录才能使用该应用程序,则只需在启动时登录即可。当应用程序退出(或进入后台,如果你想),你可以自动注销用户。
-
是的,我想在不需要切换选项卡时进行检查,因为无论如何它都会处理所有 API 请求。好点子。
标签: ios modalviewcontroller uiwindow