因此,以编程方式从UITabBarController
中的一个选项卡切换到另一个选项卡非常容易...
self.tabBarController?.selectedIndex = 1
...但是每次都对标签索引进行硬编码似乎不太优雅。例如,如果选项卡被重新排序,将会导致问题。
是否有一种方法可以检索特定UIViewController
的[first]索引,以便使代码类似于以下内容?
if let destinationIndex = self.tabBarController?.index(of: ExampleViewController) {
self.tabBarController?.selectedIndex = destinationIndex
}
答案 0 :(得分:2)
您将要使用firstIndex(where:)
方法。
if let destinationIndex = self.tabBarController?.viewControllers.firstIndex(where: { $0 is ExampleViewController }) {
self.tabBarController?.selectedIndex = destinationIndex
}
答案 1 :(得分:0)
对于适用于它的用户,这是@ Craig Siemens的答案,适用于将目标VC嵌入到导航控制器中的情况。
db.delete(TABLE_FAV_AMEN, KEY_AD_ID + " IN (?)", strIn);
答案 2 :(得分:-1)
为您的标签栏项创建一个枚举。
如果设计更改了顺序,则可以在枚举中更改它,而无需进行其他任何更改。
enum TabbarVCs: Int {
case home
case settings
case profile
}
tabBarController.selectedIndex = TabbarVCs.home.rawValue