每次同步数据库时,我都试图禁用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/