Вы можете создать подкласс UITabBarController
, сделать контроллер панели вкладок своим собственным делегатом и реализовать следующую функцию делегата:
class TabBarController: UITabBarController, UITabBarControllerDelegate {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
delegate = self
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
delegate = self
}
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
return viewController != selectedViewController
}
}
Таким образом, пользователь может выбирать только те элементы панели вкладок, которые еще не выбраны.