Вы не хотите, чтобы базовый класс вашего контроллера представления был UITabBarDelegate. Если бы вы сделали это, все ваши подклассы контроллера представления были бы делегатами панели вкладок. Я думаю, вы хотите расширить UITabBarController
class FiveTabbarController: UITabBarController, UITabBarControllerDelegate {
, затем в этом классе переопределить viewDidLoad и там установить для свойства делегата значение self:
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
}
теперь этот класс является как UITabBarDelegate (поскольку UITabBarController реализует этот протокол), так и UITabBarControllerDelegate, и вы можете переопределить / реализовать эти методы делегата по желанию, например:
extension FiveTabbarController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if let getSelectedIndex = tabBarController.viewControllers?.firstIndex(of: viewController), getSelectedIndex == 2 {
self.selectedIndex = 0
}
}
}