如果UITabBar有超过5个项目,则操作无效

问题描述 投票:2回答:1

我想在用户点击UITabBar中的某些选项卡而不打开另一个视图时执行操作。例如,设置选项卡或共享。这是我做的:

class ViewTabBarController: UITabBarController,UITabBarControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.delegate = self
        // Do any additional setup after loading the view.
    }


    override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
        print("do something")
    }
}

如果UITabBar只有5个项目,此代码可以正常工作。但问题是,如果UITabBar有超过5个项目,那么“更多选项卡”下的项目在单击时不会调用tabBar()函数。

ios swift xcode uitabbar
1个回答
1
投票

从UITabBarControllerDelegate的didSelect方法的文档描述:

告知代理用户在选项卡栏中选择了一个项目。

这意味着当用户点击栏中的一个按钮时调用该方法。如果你有一个“更多”按钮,那么这就是标签栏中的按钮,因此点击“更多”会触发该方法。

“更多”部分中的视图控制器实际上以涉及使用UINavigationController的不同方式进行处理。使用这些视图,它们在选项卡栏中没有按钮,因此甚至不会触发。

© www.soinside.com 2019 - 2024. All rights reserved.