如何在UITabBarController中获取特定UIViewController的索引
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在UITabBarController中获取特定UIViewController的索引相关的知识,希望对你有一定的参考价值。
因此,以编程方式从qazxsw点的一个标签切换到另一个标签很容易......
UITabBarController
...但每次对标签索引进行硬编码似乎都非常不优雅。例如,如果重新排序选项卡,则会导致问题。
有没有办法检索特定self.tabBarController?.selectedIndex = 1
的[first]索引,以便代码可能更像下面的内容?
UIViewController
你会想要使用if let destinationIndex = self.tabBarController?.index(of: ExampleViewController) {
self.tabBarController?.selectedIndex = destinationIndex
}
方法。
firstIndex(where:)
对于那些适用的人,这是@if let destinationIndex = self.tabBarController?.viewControllers.firstIndex(where: { $0 is ExampleViewController }) {
self.tabBarController?.selectedIndex = destinationIndex
}
的答案,适用于目标VC嵌入导航控制器时:
Craig Siemens
为tabbar项创建枚举。
如果设计更改了顺序,您可以在枚举中更改它而不更改任何其他内容。
if let destinationIndex = self.tabBarController?.viewControllers?.firstIndex(where: {
let navController = $0 as? UINavigationController
return navController?.viewControllers.first is ExampleViewController
}) {
self.tabBarController?.selectedIndex = destinationIndex
}
以上是关于如何在UITabBarController中获取特定UIViewController的索引的主要内容,如果未能解决你的问题,请参考以下文章
如何从 View 获取数据到 UITabBarController
如何获取现有的 UITabBarController 实例?
在UINavigation Controller中获取UITabBarController中View Controller的currentViewController
当用户返回到 UITabBarController 选项卡时如何刷新表数据
UITableViewCell 获取UITabBarController
在呈现的 ViewController/NavigationController 上获取 UITabBarController