重新选择 UITabBar 项目时防止弹出视图

Prevent popping views when reselecting UITabBar item

我有一个扩展 UITabBarControllerUITabBar class,在它上面我有 3 个 UINavigationController,每个都有自己的 rootController。然后在第一个上我推额外的 UIViewController。当我更改选项卡时,一切正常,在每个视图上都有应该存在的东西。

当我在第一个选项卡上然后再次单击同一个选项卡时,就会出现问题。当我这样做时,出于某种原因,推送到它上面的视图会弹出回 rootView。

有人对如何防止这种情况有任何建议吗?

我接受 swift 或 objective c 中的建议。

你可以试试这个,当你 select 它显示根的同一个选项卡时,作为默认的选项卡栏,所以实现这个委托 UITabBarControllerDelegate

//

class TabBarController: UITabBarController , UITabBarControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

       self.delegate = self

    }

    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {

        return tabBarController.selectedIndex != tabBarController.viewControllers?.index(of: viewController)  
    }

}