自从iOS 11以来,在
我为
setLeftBarButtonItems(_,animated: Bool)
、setRightBarButtonItems(_,animated:)
、setLeftBarButton(_,animated:)
和setRightBarButton(_,animated:)
方法中,animated
参数似乎被忽略了。我为
UIViewController
子类编写了这个简单的代码:override func viewDidLoad() {
super.viewDidLoad()
let rightButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(changeRightBarButtonItem(_:)))
navigationItem.rightBarButtonItem = rightButton
}
@objc
func changeRightBarButtonItem(_ sender: Any) {
let newRightButton = UIBarButtonItem(title: "Cancel", style: .plain,
target: self, action: #selector(changeRightBarButtonItem(_:)))
navigationItem.setRightBarButtonItems([newRightButton], animated: true)
}
这在iOS 10上运行正常,但在iOS 11上,无论animated
是true
还是false
都没有区别。
看起来这是iOS 11的问题,但也许我错过了什么。有什么提示可以让它工作吗?即使是解决方法也很有趣。