在更多ViewController表中动态更新选项卡栏项

时间:2017-06-03 22:06:16

标签: swift uitabbarcontroller

行。我还没有真正看到过如何在任何地方做到这一点。这可能是一个问题"你无法从这里到达那里。"或#"神圣#@ $!这是一个令人厌恶的黑客,它应该在木棚后面拍摄!"。

我有一个标签式Swift 3 iOS应用程序,当页面状态发生变化时,它会动态更新所选页面的标签栏图像。

我这样做:

if let navController = self.navigationController as? MyNavController {
    navController.tabBarItem.image = navController.tabBarImage
    navController.tabBarItem.selectedImage = navController.tabBarImage
}

tabBarImage实际上是一个计算属性。此片段在UI回调中调用,该回调在状态更改时更新。

这很有效。

但是在MoreViewController中,不是那么好。无论我做什么,这些图像都会一直保持静止。

我已经对MoreViewController进行了一些探索。我可以看到tableView和细胞,但是闻起来就像那种黑客会让我的应用程序被App Me评论中的Blue Meanies带到木棚后面。

有没有正确的方法呢?

2 个答案:

答案 0 :(得分:1)

您可以使用通知并将字典中的图像作为通知对象传递。然后,您可以立即获得具有不同键值的不同tabBarImage。

答案 1 :(得分:0)

行。我想出了怎么做。

我沿着导航控制器路径爬回来;对于不在更多空间的物品,它可以正常工作。

我通过从标签栏控制器向前爬行来修复它,而不是:

self.tabBarController?.viewControllers?[MySelectionIndex].tabBarItem.image = self.tabBarImage
self.tabBarController?.viewControllers?[MySelectionIndex].tabBarItem.selectedImage = self.tabBarImage