如何以及在何处初始化 Swift 中的 UITabBarControllerDelegate?

How and where to initialize UITabBarControllerDelegate in Swift?

我有一个 UITabBarController 链接到 4 个 UIViewController,每个嵌入 NavigationViewController

我需要检查当前选择这些视图控制器之一,并且用户单击同一视图的同一选项卡栏项目时,是否会触发展开转场操作。

所以我想我需要添加一个 UITabBarControllerDelegate 但是当我试图将它添加到 viewDidLoad() 方法中的 UITabBarController class 时:

let tabBarDel: UITabBarControllerDelegate = UITabBarControllerDelegate()

我看到以下错误: 'UITabBarControllerDelegate' 无法构造,因为它没有可访问的 initializers.

UITabBarController 是一个协议,而不是 class。您无法实例化协议。您需要创建自己的协议实现。

我用 UITabBarControllerDelegate 扩展了视图控制器 class。在我使用的 viewDidLoad() 方法中 self.tabBarController?.delegate = self