为什么 UIBarbuttonItem 在 Swift 中不起作用,而代码编写得很好?
Why UIBarbuttonItem is not working in Swift while code is written well?
我用两种方式编写了相同的行为。第一个,不起作用:
var barbutton = (left) ? navigationItem.leftBarButtonItem : navigationItem.rightBarButtonItem
barbutton = UIBarButtonItem(customView: button)
相反:
if (left) {
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: button)
} else {
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)
}
有什么区别?
正如@Martin 所指出的,这两个代码序列在功能上有很大不同。
首先将 barbutton
设置为 leftBarButtonItem
或 rightBarButtonItem
的内容,然后丢弃该值并将(临时变量)设置为新创建的按钮。
第二个设置 leftBarButtonItem
或 rightBarButtonItem
,具体取决于 left
新创建的按钮。
确实没有太多方法可以缩短您的代码并仍然达到预期的效果(同时不会混淆代码)。
您可以使用:
(left ? navigationItem.setLeftBarButtonItem : navigationItem.setRightBarButtonItem)(UIBarButtonItem(customView: button), animated: false)
但这很奇怪。
我用两种方式编写了相同的行为。第一个,不起作用:
var barbutton = (left) ? navigationItem.leftBarButtonItem : navigationItem.rightBarButtonItem
barbutton = UIBarButtonItem(customView: button)
相反:
if (left) {
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: button)
} else {
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)
}
有什么区别?
正如@Martin 所指出的,这两个代码序列在功能上有很大不同。
首先将 barbutton
设置为 leftBarButtonItem
或 rightBarButtonItem
的内容,然后丢弃该值并将(临时变量)设置为新创建的按钮。
第二个设置 leftBarButtonItem
或 rightBarButtonItem
,具体取决于 left
新创建的按钮。
确实没有太多方法可以缩短您的代码并仍然达到预期的效果(同时不会混淆代码)。
您可以使用:
(left ? navigationItem.setLeftBarButtonItem : navigationItem.setRightBarButtonItem)(UIBarButtonItem(customView: button), animated: false)
但这很奇怪。