我想交换一个条形按钮项目,具体取决于我认为相当直接的UISegmentControl
。
我最初的计划是:
IBAction
代码是这样的
@IBAction func segmentChanged(sender: UISegmentedControl) {
UIView.animateWithDuration(0.25) { () -> Void in
if(sender.selectedSegmentIndex == 0) {
barButtonA.hidden = true
barButtonB.hidden = false
} else {
barButtonA.hidden = false
barButtonB.hidden = true
}
}
}
按预期隐藏了正确的按钮,但奇怪的是,按钮仍然存在的空间,所以看起来很奇怪。
接下来,我在界面构建器中看到每个按钮都有一个父容器(UIBarButtonItem
s)。我不确定他们为什么需要,但是我通过IBOutlets
将它们连接起来,这样我就可以在功能中隐藏/显示它们,但是这些都不起作用,因为它们不是#&# 39; t有一个隐藏的属性。
最后,我尝试使用以下代码的新商店:
@IBAction func segmentChanged(sender: UISegmentedControl) {
UIView.animateWithDuration(0.25) { () -> Void in
if(sender.selectedSegmentIndex == 0) {
self.navigationItem.rightBarButtonItem = self.barButtonItemA
} else {
self.navigationItem.rightBarButtonItem = self.barButtonItemB
}
}
}
但没有运气!在这里,它似乎只是动画交换两个按钮位置/顺序,而不是实际删除任何一个。
我做错了什么?谢谢!
答案 0 :(得分:0)
哟应该结合你拥有的两个功能。 因此交换它们并改变隐藏状态。
更新:
您是否尝试先删除navigation.barbutton。
self.navigationItem.rightBarButtonItem = nil