6

我希望禁用按下我的标签栏并返回导航层次结构中的根视图的功能,同时在我的导航栏中为按钮保留此功能。

因此,我希望用户返回根视图的唯一方法是按下导航栏中的按钮,而不是点击标签栏按钮。

我环顾四周并尝试了几种解决方案,但似乎都不起作用,因为它们禁用了导航栏按钮和标签栏按钮的功能,而不仅仅是标签栏按钮。

谢谢!

4

2 回答 2

4

一种可能性是创建协议的子类UITabBarController并实现UITabBarControllerDelegate协议。然后你可以实现

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

并 return NO,当再次选择特定的 viewController 时。一种方法是保存最近选择的项目并将其与当前选择的项目进行比较。

于 2015-02-28T16:05:27.920 回答
0

周末遇到这个问题。在 appDelegate didfinishlaunching() 方法期间,我一直发现我的自定义 TabBarController 为零。

我解决它的方法是使我的自定义 TabBarController 成为 UITabBarControllerDelegate,然后在自定义 TabBarController 类中实现以下委托方法:

    // Stops View Controllers from being dismissed when a tab is selected on the UITabBarController
    public func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    return viewController != tabBarController.selectedViewController
    }
于 2019-04-03T11:01:41.050 回答