【发布时间】:2019-06-13 12:31:06
【问题描述】:
我正在使用带有两个项目的 TabBar。我在 .xib 文件上创建它并以编程方式设置 ViewControllers。我可以选择默认的 VC:
selectedIndex = 0
现在的问题是 tabBar 没有突出显示所选项目的图标。
我在 TabBarController 的 viewDidLoad() 上设置了 VC:
let firstViewController = FirstViewController(nibName: "FirstViewController", bundle: nil)
let secondViewController = SecondViewController(nibName: "SecondViewController", bundle: nil)
self.viewControllers = [firstViewController, secondViewController]
这是在每个 VC 上创建项目的代码:
let tabBarItem = UITabBarItem(title: "First", image: #imageLiteral(resourceName: "firstImage"), selectedImage: nil)
self.tabBarItem = tabBarItem
默认情况下不只是选定的索引不突出显示,有时它只显示其中一个,直到我点击tabBar。
编辑:
我添加了三张图片。
第一个是在加载 VC 之后拍摄的。未点击任何项目,以编程方式选择索引 0 并且 VC 按预期显示。
第二个是在点击第二个项目后,它会显示,但两者都没有突出显示。
第三个是再点一次之后,现在不管按哪个,高亮都起作用了。
编辑 2:
我添加了一个视频:
【问题讨论】:
-
你在哪里将
selectedImage分配给tabbarItem? -
我没有分配它。我已经尝试过,它在选择时会更改图像,然后在未选择时返回到另一个图像。但突出问题仍然存在。
-
试试
tabbar.selectedIndex = 0?在TabBarController类中写self.selectedIndex = 0。不要再创建一个tabbarItem,因为您已经在xib中设置了。 -
self.selectedIndex = 0 已经在我的 tabBarController 类上。我真的不明白你想说什么对不起。
-
@TheTiger Monty 的回答很有帮助。我认为问题在于在每个 VC 上创建选项卡项,因此 TabBar 在第一次加载之前不知道第二个 VC 有什么图标。感谢您的帮助。
标签: swift xcode tabbarcontroller