@IBAction 标记表示一个动作将被连接到 Interface Builder 中的图像控件。因为它们会作为核心结构的一部分依赖于类的实例,所以只有实例方法可以声明为 @IBAction。下面是一个例子:
class ViewController: UIViewController {
@IBOutlet weak var myButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
self.myButton.addTarget(self, action: #selector(self.myMethod), for: .touchUpInside)
}
@objc func myMethod() { // only instance methods can be @IBAction
// do something when button is tapped
}
}
在这个例子中,我们创建了一个视图控制器类,并添加了一个 outlet,表示它可以在 Interface Builder 中连接到按钮图像控件。然后,我们使用 addTarget 方法将视图控制器连接到该按钮,我们需要声明一个实例方法作为按钮点击的动作。注意这个方法使用了 @objc 标记,以便在 Objective-C 中使用。