স্টুয়ার্ট ক্লার্কের সমাধানের মতো তবে সুইফ্ট 3 এর জন্য এবং সঠিক ট্যাবটি সন্ধানের জন্য পুনরুদ্ধার শনাক্তকারী ব্যবহার করে:
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
}
এটি এর মতো ব্যবহার করুন ("হিউম্যানস" এবং "রোবটস" অবশ্যই নির্দিষ্ট ভিউকন্ট্রোলারের জন্য স্টোরিবোর্ডে সেট করতে হবে এবং এটি পুনরুদ্ধার আইডি, বা স্টোরিবোর্ড আইডি ব্যবহার করুন এবং "স্টোরিবোর্ড আইডি ব্যবহার করুন" পুনরুদ্ধার আইডি হিসাবে পরীক্ষা করুন):
struct Tabs {
static let Humans = "Humans"
static let Robots = "Robots"
}
setTabById(id: Tabs.Robots)
দয়া করে নোট করুন যে আমার ট্যাব কনট্রোলারটি নেভিগেশনকন্ট্রোলারের পিছনে ভিউ কন্ট্রোলারদের সাথে লিঙ্ক করেছে। নেভিগেশন কন্ট্রোলার ছাড়া এটি দেখতে এই রকম হবে:
if controller.restorationIdentifier == id {