标签栏没有显示图标?

Bol*_*ion 16 xcode uitabbarcontroller uitabbaritem uitabbar ios

我读了一堆相关的问题,我尝试了他们所说的,没有什么可行的.不知道为什么.所以,我有3个不同UIStoryboards.第一个是处理登录/注册的Auth Storyboard,并且有第二个Storyboard - Tab栏故事板的故事板参考.这个故事板包含5个其他故事板引用,可以加载它的独立视图控制器.

我的问题是,一旦用户登录,图标就不会显示.我设置了第一个视图控制器的自定义颜色,UITabViewController以确保它加载.确实如此.

我试图将所有图像/图标设置为"原始",但没有用.我设置了一个系统映像,只是为了看是否是问题,它们没有显示出来.另外值得一提的是,图标显示在故事板中,但是当它被编译时,它们在模拟器中无处可见.

我究竟做错了什么?

在此输入图像描述

PS:我已经改变了标签栏的色调,只是为了测试它,它的工作原理.所以,问题不在于......

Mar*_*ens 23

故事板参考和缺少标签栏图标的问题

如果您的选项卡栏控制器附有故事板引用,您会注意到故事板引用实际上有一个UITabBarItem:

假的UITabBarItem

不要为这个"假"UITabBarItem设置属性!

运行应用程序时,您的设置将完全不执行任何操作.您提供的值仅影响您在Interface Builder中看到的内容,而不会影响您运行它时的应用程序.

您需要做的是转到故事板引用所指向的ACTUAL视图控制器.该视图控制器上还将有一个UITabBarItem.这是"真正的"UITabBarItem.在那里设置您的属性(图标,标题等),您将在运行应用程序时看到它们.

实际视图控制器

  • 这让我很沮丧。我相信马克·莫肯斯(Mark Moeykens),当我不明白他在说什么时,我知道有些事情是不对的。原来,我还必须手动将TabBarItem添加到我的视图控制器中。当您将选项卡栏链接到已经存在的View Controller时,似乎就是这种情况。一旦我手动添加了TabBarItem ...,事情就自动地工作了,就像Mark所说的那样。 (3认同)
  • 我很困惑。为什么有“HomeViewController Scene”和“Home Scene”?你如何知道视图控制器正在引用哪个是实际的视图控制器?如果您发布整个文档大纲的图片将会很有帮助。 (2认同)

Rah*_*mar 11

我附加了描述连接的图像:

  1. 将TabBar控制器连接到五个视图控制器

  2. 对于每个视图控制器,选择任何视图控制器 - >在顶部的Xcode选项中转到编辑器 - >嵌入 - >导航控制器

  3. 在导航控制器中选择底栏 - >在实用程序中打开属性检查器 - >提供图像中突出显示的标题和图像

在此输入图像描述

从登录/注册到TabBar屏幕导航: 向TabBarController提供Storyboard ID,例如."TabBarController"并使用相应Storyboard的Storyboard ID创建TabBarController实例.

斯威夫特3

func navigateToTabBar() {
    let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
    let nextViewController = storyBoard.instantiateViewController(withIdentifier: "TabBarController") as UIViewController
    self.present(nextViewController, animated:true, completion:nil)
}
Run Code Online (Sandbox Code Playgroud)


小智 8

不要忘记分别在选项卡栏项目和栏项目类别内设置“选定图像”属性和“图像”属性!

在此输入图像描述