我读了一堆相关的问题,我尝试了他们所说的,没有任何效果。不知道为什么。所以,我有3个不同的UIStoryboards
。第一个是处理登录/注册的Auth Storyboard,并且有第二个Storyboard - Tab栏故事板的故事板参考。这个故事板包含5个其他故事板引用,可以加载它的独立视图控制器。
我的问题是,一旦用户登录,图标就不会显示。我在UITabViewController
中设置了第一个视图控制器的自定义颜色,以确保它加载。确实如此。
我试图将所有图像/图标设置为“原始”,但是没有用。我设置了一个系统映像,只是为了看是否是问题,它们没有显示出来。另外值得一提的是,图标显示在故事板中,但是当它被编译时,它们在模拟器中无处可见。
我做错了什么?
PS:我已经改变了标签栏的色调颜色,只是为了测试它,它的工作原理。所以,问题不在于......
答案 0 :(得分:16)
如果在“标签栏”控制器上附加了情节提要引用,您将注意到该情节提要引用实际上具有 UITabBarItem :
请勿为此“假” UITabBarItem设置属性!
运行该应用程序时,您的设置将不执行任何操作。您提供的值仅影响您在Interface Builder中看到的内容,而不影响运行时在应用程序中看到的内容。
您需要做的是转到情节提要参考指向的ACTUAL视图控制器。该视图控制器还将具有一个UITabBarItem。这是“真实”的UITabBarItem。在此处设置属性(图标,标题等),然后在运行应用程序时会看到它们的显示。
答案 1 :(得分:1)
如果以编程方式使您的navigationController出现,则将出现相同的症状,因为调用viewDidLoad的时间太晚了。在子视图控制器中覆盖init将使您的图标正确显示。
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
self.tabBarItem = UITabBarItem(title: "Settings", image: UIImage(named: "gear"), tag: 1)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
编码愉快!
答案 2 :(得分:1)
答案 3 :(得分:0)
我有同样的问题。我的错误是我确实在“标签栏项目”中设置了Selected Image
,但没有设置Image
属性。
因此,选项卡栏图标显示在子视图中(在情节提要中),但未显示在父视图中(即TabBarController)。