Stuart Clark'ın çözümü gibi ama Swift 3 için ve doğru sekmeyi bulmak için restorasyon tanımlayıcısını kullanma:
private func setTabById(id: String) {
var i: Int = 0
if let controllers = self.tabBarController?.viewControllers {
for controller in controllers {
if let nav = controller as? UINavigationController, nav.topViewController?.restorationIdentifier == id {
break
}
i = i+1
}
}
self.tabBarController?.selectedIndex = i
}
Bu şekilde kullanın ("İnsanlar" ve "Robotlar", belirli viewController ve bunun Restorasyon Kimliği için film şeridinde de ayarlanmalıdır veya Film şeridi kimliğini kullanın ve geri yükleme kimliği olarak "film şeridi kimliğini kullan" seçeneğini işaretleyin):
struct Tabs {
static let Humans = "Humans"
static let Robots = "Robots"
}
setTabById(id: Tabs.Robots)
TabController'ımın navigationControllers'ın arkasındaki viewControllers'a bağlandığını lütfen unutmayın. NavigationControllers olmadan şöyle görünecektir:
if controller.restorationIdentifier == id {