首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:禁用UITabBarItem不起作用的方法

Swift:禁用UITabBarItem不起作用的方法
EN

Stack Overflow用户
提问于 2020-05-21 00:35:57
回答 1查看 52关注 0票数 0

如果internet连接不可用,我正在尝试禁用选项卡项目。我有以下几点:

代码语言:javascript
复制
    internal func getViewControllers(connectionStatus: ConnectionService.ConnectionStatus) {
    if connectionStatus == .connected {
        if let arrayOfTabBarItems = self.tabBar.items as AnyObject as? NSArray,
            let tabBarItem = arrayOfTabBarItems[1] as? UITabBarItem {
            print("***** \(arrayOfTabBarItems[1])")
            tabBarItem.isEnabled = false
        }
    } else {
           if let arrayOfTabBarItems = self.tabBar.items as AnyObject as? NSArray,
            let tabBarItem = arrayOfTabBarItems[2] as? UITabBarItem {
            print("***** \(arrayOfTabBarItems[2])")
            tabBarItem.isEnabled = false
        }
    }
}

该方法是从检测用户设备的连接状态的另一个类调用的。该方法在应该被调用的时候被调用,但是tabBarItem并没有像我期望的那样被禁用。

运行打印语句并打印以下内容(当为.connected时):

代码语言:javascript
复制
***** <UITabBarItem: 0x11df3c8a0> title='Retrieve Completed Orders' image=<UIImage:0x2801bc090 named(main: tabbar_orders) {30, 30}>

这正是我所期望的。这确实是第二个选项卡的名称。任何想法都会非常感谢,因为这让我抓狂……

EN

回答 1

Stack Overflow用户

发布于 2020-05-21 00:47:01

我不认为选项卡栏项目的isEnabled属性可以禁用它。我相信UITabBarItem从它的父类UIBarItem继承了这个属性。

相反,您应该实现UITabBarControllerDelegate方法tabBarController(_:shouldSelect:)

当用户点击选项卡栏项目时,选项卡栏将在其委托上调用该方法。如果您不希望该项目变为活动状态,则应返回false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61918264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档