我希望在运行时将标签栏项目的图像更改为新图像,但要更新其他视图。
有什么办法可以做到这一点?
我已经奋斗了几个小时,所以任何帮助将不胜感激。
Swift 4.2 Xcode 10.1
编辑:
我尝试通过VC中的viewDidLoad中的self.tabBarController?.tabBar.items?[0] .image进行设置。我尝试对TabBarController进行子类化,并在那里进行设置,但无法获得我所追求的运行时行为。
更清楚地说,我对当前选择的和未选择的名为“ globe”的图像感到满意,但是我想听一个名为“ truth”的变量,当真值成立时,我想更改未选择的图像图片到“ globe_red”。
正是我在努力运行的应用程序运行时更改图像的行为!
答案 0 :(得分:1)
您可以使用以下代码更改tabBar的图像。
self.tabBarController?.tabBar.items?[0].image = #imageLiteral(resourceName: "img")
或selectedImage
self.tabBarController?.tabBar.items?[0].selectedImage = #imageLiteral(resourceName: "img")
您可以将索引用于选定的tabBar,而不是0
中的items
。
答案 1 :(得分:0)
好,我修好了!
UITabBarController子类
在子类的viewDidLoad中,将self.tabBar.items?[0] .image和self.tabBar.items?[0] .selectedImage设置为所需的图像。在这里,我设置了第一个VC的选项卡栏项,但是您可以使用索引设置任何项或循环浏览并全部设置。