[英]Tab bar not showing icons?
我读了一堆相关的问题,我尝试了他们所说的,但没有任何效果。 不知道为什么。 所以,我有 3 个不同UIStoryboards
。 第一个是处理登录/注册的 Auth Storyboard,还有一个 storyboard 引用第二个 Storyboard - 选项卡栏 storyboard。这个 storyboard 包含 5 个其他 storyboard 的引用,它将加载单独的视图控制器。
我的问题是,一旦用户登录,图标就不会显示。我在 UITabViewController 中设置了第一个视图UITabViewController
的自定义颜色,以确保它加载。 确实如此。
我试图将所有图像/图标设置为将它们呈现为“原始”,但没有用。 我设置了一个系统图像,只是为了看看是否是这个问题,它们没有显示。 另外值得一提的是,图标显示在 storyboard 中,但在编译时,它们在模拟器中无处可见。
我究竟做错了什么?
PS:我已经更改了标签栏的色调,只是为了测试它,它可以工作。 所以,问题不在于那个......
如果您将 Storyboard References 附加到您的 Tab Bar Controller,您会注意到 Storyboard References 上实际上有一个UITabBarItem :
不要为这个“假”UITabBarItem 设置属性!
当您运行该应用程序时,您的设置将什么也不做。 您提供的值仅影响您在 Interface Builder 中看到的内容,而不会影响您运行时的应用程序。
您需要做的是转到您的故事板参考所指向的 ACTUAL 视图控制器。 该视图控制器上还将有一个 UITabBarItem。 这是“真正的”UITabBarItem。 在那里设置您的属性(图标、标题等),您将在运行应用程序时看到它们显示。
我附上了描述连接的图像:
将 TabBar 控制器连接到你的五个视图控制器
对于每个视图控制器,选择任何视图控制器 -> 在顶部的 Xcode 选项中转到编辑器 -> 嵌入 -> 导航控制器
- 在 Navigation Controller 中选择底部栏 -> 在 Utilities 中打开 Attribute Inspector -> 提供在图像中突出显示的标题和图像
从登录/注册导航到 TabBar 屏幕:将 Storyboard ID 提供给 TabBarController 例如。 “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)
}
我有同样的问题。 我的错误是我确实在“Tab Bar Item”中设置了Selected Image
,但我没有设置Image
属性。
因此,标签栏图标显示在子视图 [故事板] 中,但没有显示在父视图中(即 TabBarController)。
如果您以编程方式制作导航控制器,由于 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)
}
快乐编码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.