每次同步数据库时,我都试图禁用navigationBar中的rightButton。我将navigationBar子类化,因为我需要将项目向上移动一点。

现在,我尝试在layoutSubviews期间禁用右键。我能够得到UINavigationButton类型的UIView。尝试将UIView强制转换为UINavigationButton时,出现错误:“使用未声明的类型'UINavigationButton'”。所以我以为我只需要导入另一个库,但似乎无法访问此类?还是有人知道要导入什么?

这是我目前的方法,因为我可以读取动态类型并将其转换为字符串,所以我用它来确定需要在哪个类型上移动。

let navigationBarItems = self.subviews
    var lableInserted = false
    var buttons:[UIView] = []
    for navigationBarItem in navigationBarItems{
        print(String(navigationBarItem.dynamicType))
        if String(navigationBarItem.dynamicType) == "_UINavigationBarBackground"{
            if  syncBarDataSource != nil{
                navigationBarItem.frame.origin.y = bounds.origin.y + CGFloat(syncBarDataSource!.barHeight) - CGFloat(maxHeight/2)
                navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight)
            } else {
                navigationBarItem.frame.origin.y = bounds.origin.y - CGFloat(maxHeight/2)
                navigationBarItem.frame.size.height = bounds.size.height + CGFloat(maxHeight)
            }
        }
        if String(navigationBarItem.dynamicType) == "UINavigationButton" || String(navigationBarItem.dynamicType) == "UINavigationItemButtonView"{
            buttons.append(navigationBarItem)
        }
        if let lable = navigationBarItem as? UILabel{
            lableInserted = true
            lable.text = syncBarDataSource.text
            if syncBarDataSource!.barHeight > 0{
                lable.hidden = false
            } else {
                lable.hidden = true
            }
        }
    }


但是如果我想像

navigationBarItem as? UINavigationButton


我得到描述的错误

最佳答案

您是否尝试过UIBarButtonItem而不是UINavigationItem?

关于ios - 无法在Swift 2.2中使用UINavigationButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36886814/

10-12 14:45