比较发件人:任何?到UIBarButtonItem

时间:2016-09-22 10:01:00

标签: ios swift uibarbuttonitem swift3

我是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?

一样投射它

Original Apple Guide

3 个答案:

答案 0 :(得分:8)

prepareforsegue方法中尝试这样做。

override func prepare(for segue: UIStoryboardSegue, sender:Any){
     if let barButton = sender as? UIBarButtonItem {
          if saveButton == barButton {
               //Do what you want
          }
     }
}

答案 1 :(得分:0)

如果你需要投你,只要说sender as! UIBarButtonItem就这么简单。

答案 2 :(得分:0)

你也可以:

1)选择您创建的segue 作为UIBarButtonItem与目标控制器之间的连接。

2)将其命名为

enter image description here

3)测试

func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "MyIdentifier" {
        // actions
    }
}