比较发件人:有吗?到 UIBarButtonItem
compare sender: Any? to UIBarButtonItem
我是 swift 的新手,刚好发布了 Swift 3,但苹果文档仍然使用 Swift2 语法。
了解下面(Swift2)
@IBOutlet var weak saveButton:UIBarButtonItem!
此方法可让您在 ViewController
显示之前对其进行配置。
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
if saveButton === sender { //originally swift 2 can compare
}
已更改为 (Swift3)
override func prepare(for segue: UIStoryboardSegue, sender:Any){
}
现在 swift 3 我无法检查 if sender = saveButton
我对 Swift 很陌生,我需要像 sender as UIBarButtonItem?
那样投射吗
如果您需要施法,只需说 sender as! UIBarButtonItem
就这么简单。
在 prepareforsegue
方法中像这样尝试。
override func prepare(for segue: UIStoryboardSegue, sender:Any){
if let barButton = sender as? UIBarButtonItem {
if saveButton == barButton {
//Do what you want
}
}
}
您还可以:
1) Select 您创建的 segue 作为 UIBarButtonItem
和目标控制器之间的连接。
2) 命名:
3) 测试一下:
func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "MyIdentifier" {
// actions
}
}
我是 swift 的新手,刚好发布了 Swift 3,但苹果文档仍然使用 Swift2 语法。
了解下面(Swift2)
@IBOutlet var weak saveButton:UIBarButtonItem!
此方法可让您在 ViewController
显示之前对其进行配置。
override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject?) {
if saveButton === sender { //originally swift 2 can compare
}
已更改为 (Swift3)
override func prepare(for segue: UIStoryboardSegue, sender:Any){
}
现在 swift 3 我无法检查 if sender = saveButton
我对 Swift 很陌生,我需要像 sender as UIBarButtonItem?
如果您需要施法,只需说 sender as! UIBarButtonItem
就这么简单。
在 prepareforsegue
方法中像这样尝试。
override func prepare(for segue: UIStoryboardSegue, sender:Any){
if let barButton = sender as? UIBarButtonItem {
if saveButton == barButton {
//Do what you want
}
}
}
您还可以:
1) Select 您创建的 segue 作为 UIBarButtonItem
和目标控制器之间的连接。
2) 命名:
3) 测试一下:
func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "MyIdentifier" {
// actions
}
}