【问题标题】:Having a Navigation Controller & Tab Bar Controller in the same App在同一个应用程序中拥有导航控制器和标签栏控制器
【发布时间】:2020-12-06 01:56:26
【问题描述】:

大家好,

我确信有人可以帮助我解决以下问题:

我想使用导航控制器通过一组登录/注册屏幕构建我的应用程序,但是一旦用户登录,我想以标签栏控制器格式构建应用程序。

不知道如何实现两个控制器的“交接”?

对解释这一点的材料有什么建议吗?

【问题讨论】:

  • 一种可能性:从标签栏控制器开始,但只给它一个标签来导航登录。登录完成后,调用setViewControllers 为标签栏控制器提供您想要用于应用程序其余部分的控制器数组。
  • @PhillipMills 是否有可能通过从导航控制器开始使其工作?我有一个复杂的注册过程,因为我有两种不同类型的用户,所以我不得不从导航控制器开始。
  • 看起来没那么简单,但是有这样的:developer.apple.com/documentation/uikit/uiwindow/…
  • @PhillipMills 谢谢,我去看看。另外,顺便提一下——一旦注册完成,我使用一个按钮转换到主屏幕(我希望标签栏在此处以 root 启动),所以我实际上是离开导航控制器而不是再次返回它。 App Delegate 中是否没有办法声明在主屏幕显示后标签栏应该接管?

标签: ios xcode storyboard


【解决方案1】:

使用 modalPresentationStyle = fullScreen 在 TabBar 上显示导航控制器。 (iOS 13+ 需要presentationStyle,因此用户无法向下滑动并关闭登录)

由于需要登录,所以不要添加取消按钮。用户登录后,关闭导航控制器。

注意事项。

  • TabBar 需要在呈现 LoginFlow 之前加载。因此,用户将很快看到初始标签栏内容。为初始视图创建未登录状态。
  • 一旦登录视图关闭,viewWillAppear 就会被调用。因此,您可以重新加载登录状态的标签栏视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2010-09-27
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    相关资源
    最近更新 更多