gpt4 book ai didi

ios - 如何使用TabBarController在iOS应用程序中呈现ModalViewController?

转载 作者:行者123 更新时间:2023-11-29 04:08:39 25 4
gpt4 key购买 nike

当您想要在带有 TabBarController 的应用程序中将 LoginViewController 呈现为“ModalViewController”时,我正在寻找有关最佳实践方法的反馈。

事情是这样的: - 应用程序支持具有登录/注销功能的用户 session - 当应用程序启动时,它会尝试自动登录,并直接显示 TabBarController 或 LoginViewController(显示为 ModalViewController 以在登录时启用关闭动画) - 该应用程序有一个带有多个选项卡的 TabBarController。 - 每次呈现 ViewController 时都会检查用户的状态 - 如果用户未登录,则应显示具有登录功能的 ModalViewController - 如果用户手动注销,则应显示相同的 ModalViewController

我尝试过几种不同的设计来解决这个问题,但没有人觉得完全“正确”。我曾参与过一个项目,其中使用子类 UIWindow 来处理此问题,该子类替换了应用程序的默认 UIWindow。然后,子类监听不同的通知,例如“UserLoggedInSuccessively”、“UserLoggedOut”等,以处理 ModalViewController 的呈现。

还有其他解决办法吗?对于此类解决方案,我将不胜感激。

最佳答案

这个问题有不同的解决方案,您可以尝试这些替代方案,但第一个是我想说的推荐方法,

  1. 您可以将 HomeViewController 设置为每次默认打开 TabBarController 的第一个选项卡,并设置 LoginViewController单独地,在您的 AppDelegate 中,您可以检查 didFinishLaunchingWithOptions 中的登录 session ,如果 session 无效,则将 LoginViewController 显示为 ModalViewController 否则显示TabBarController 包含所有选项卡。

  2. 替代方案可能是将所有 Controller 都放在选项卡中,但是当您呈现 LoginViewController 时,在用户登录后,将所有 Controller 添加到 MutbaleArray 中并删除当前对象LoginViewController。用户登录后,将信息保存在钥匙串(keychain)中,这样用户就不必一次又一次登录,这样您就可以避免每次用户尝试注销时都显示 LoginViewController ,然后将 LoginViewController 添加到数组中,然后在 LoginViewController 之后添加所有 TabBarController 对象。

关于ios - 如何使用TabBarController在iOS应用程序中呈现ModalViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14782207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com