繁体   English   中英

标签栏 controller 在导航栏的秒屏幕 controller 看不到项目 [iOS 开发]

[英]Tab bar controller in seconds screen of Navigation bar controller cant see items [iOS Development]

(抱歉图像质量差,编辑我的问题以使其易于理解)主要

我在图像中标记了我的屏幕,所以它好多了。

我在屏幕 A 上使用导航 controller 到屏幕 B 的 go。但是屏幕 B 也在标签栏 Controller 中

(屏幕 A 和屏幕 B 在标签栏控制器中)

当我 go 到屏幕 B 时,因为它在标签栏 controller 中,它应该在底部显示栏项目,如下图所示。 底部栏项目

但它们没有出现,是因为我使用导航控制器从屏幕 a 导航到屏幕 b,如果是这样,我如何从屏幕 a go 到屏幕 b(从导航 controller 切换到标签栏控制器)。

首先,我认为需要结构更好的问题。 您可以参考以下链接 - https://stackoverflow.com/help/how-to-ask

虽然可能需要更多时间来阅读和学习如何写出一个好问题,但根据我的个人经验,我认为这样做从长远来看是有帮助的,因为我们一定会问很多问题。

几乎不可能确定您的问题,因为没有代码快照可供分析。 但我假设了一些我在使用标签栏 controller 时也遇到的可能问题。

  1. 您可能正在使用导航 controller 从Screen A移动到Screen Bself.navigationcontroller.pushViewController ...),而不是使用标签栏 controller 本身。 如果您想“切换”到不同的选项卡,您应该使用tabBarController?.selectedIndex

  2. 当您加载屏幕 B 时,您可能不会“重新加载”屏幕 B 中的项目,由于标签栏 controller,这并不是真正的问题。尝试检查表/集合视图数据源方法,例如cellForRowAt ,并确保您reloadData() .

您可能想检查以上区域,并尝试使用一些代码编辑您的问题。

我不认为你应该 go 从屏幕 A 直接到屏幕 b。

而不是从屏幕 A,你应该 go 到你的标签栏 controller,这个标签 controller 将自动在其 UINavigationController 中显示屏幕 B。

因此,首先在您的 storyboard 中为您的 UITabController 提供一个标识符。

然后尝试改变这个:

guard let nextScreen
        = storyboard?.instantiateViewController(withIdentifier: "activitiesScreen") as? ActivitiesViewController

guard let nextScreen
        = storyboard?.instantiateViewController(withIdentifier: "TabControllerStoryboardIdentifier") as? UITabBarController

并将其推送到您的导航堆栈。

试一试,看看是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM