【问题标题】:UITabBarController storyboard launch screen - initial tab?UITabBarController 故事板启动屏幕 - 初始选项卡?
【发布时间】:2015-12-21 07:47:07
【问题描述】:

我在我的应用程序中使用故事板作为启动屏幕,它包含一个带有 5 个 UINavigationControllers 的 UITabBarController。故事板除了提供启动屏幕之外什么都不做。

我想要做的是更改默认选择的选项卡。我目前对此感到困惑:

一旦实际的视图控制器加载,我就会得到这个:

正如您可以想象的那样,让选择跳转有点不和谐。我不知道如何以编程方式更改选项卡,因为我无法将自定义类附加到启动屏幕中的任何内容。当然,我真的不在乎我是否真的这样做,如果有办法用不同颜色的图标来伪造它,那也没关系,但系统会将这种色调添加到选定的图标中。

有没有办法通过故事板启动屏幕来做到这一点?谢谢。

【问题讨论】:

    标签: ios uitabbarcontroller uistoryboard


    【解决方案1】:

    使用这段代码在你的视图中会出现方法。
    yourTabBarController.selectedViewController=[yourTabBarController.viewControllers objectAtIndex:2]

    【讨论】:

    • 因为我将情节提要用作启动情节提要,所以我无法将自定义子类分配给任何控制器,因此我无法覆盖 viewWillAppear 方法。
    • ok 你可以试试这个 1. 选择故事板中的标签栏控制器 2. 在实用工具面板中显示身份检查器 3. 添加一个新的“用户定义的运行时属性” 4. 设置密钥路径为“selectedIndex” 5. 将类型设置为“数字” 6. 将值设置为您希望选择的选项卡的索引(例如,值 1 将选择第二个选项卡) 7. 保存情节提要,构建并运行应用程序
    • 啊,效果很好!谢谢!出于某种原因,我不得不取消选中“用作启动屏幕”框以清除错误,但它仍然将情节提要作为我的启动屏幕加载,如图。
    • 在启动屏幕故事板中什么都不做
    • 您无法通过代码或运行时属性更改启动屏幕情节提要。
    【解决方案2】:

    不要在 LaunchScreen.storyboard 中使用标签栏控制器。而是使用普通视图控制器并添加标签栏,然后根据需要添加标签栏项目。这似乎是在没有选择任何索引的情况下制作标签栏的唯一方法。

    【讨论】:

      【解决方案3】:

      尽管这个问题是几年前提出的,但我已经为此争论不休,并为我的应用 TimeFinder 找到了一个令我满意的解决方法。

      这里的其他答案提出了一些很好的建议,但是尝试构建 TabBarController 的副本听起来具有挑战性且不可持续,而且我对 Akshay Agrawal 1 提到的用户定义属性黑客没有太多运气。

      由于问题最终是在启动屏幕中显示错误的项目,我决定通过将所选图像色调更改为浅灰色来完全隐藏选择以匹配其他未选中的标签栏项目图标2

      这使我可以将项目的顶级视图控制器(嵌入在 tabbarcontroller 中的 navbarcontroller 中的视图控制器)复制并粘贴到启动屏幕故事板中,删除所有无关紧要的连接和视图控制器,并最终获得高质量的启动让应用看起来比实际加载速度更快的屏幕。

      这是我的启动屏幕故事板供参考3,这是我的应用程序,它将很快更新此启动屏幕4

      TimeFinder on the App Store

      【讨论】:

        猜你喜欢
        • 2018-11-27
        • 1970-01-01
        • 1970-01-01
        • 2015-11-14
        • 2022-08-07
        • 2016-08-08
        • 1970-01-01
        • 2012-01-29
        • 1970-01-01
        相关资源
        最近更新 更多