navigationItem.rightBarButtonItem = UIBarButtonItem(title: "注册", style: UIBarButtonItemStyle.Plain, target: self, action: "loginBtn")
//不将其私有化是可以正常监听按钮点击
func loginBtn() {
print("点击登陆,注册按钮")
}
----------------------帅帅的分割线------------------------------------//假如私有化,按钮点击不能被监听到,程序运行就会崩溃
private func loginBtn() {
print("点击登陆,注册按钮")
}
解决方法:
@objc private func loginBtn() {
print("点击登陆,注册按钮")
}
解析:由于swift是静态型的语言,当这个方法私有化之后,这个按钮就不能被监;OC中,有个UIController,由于是消息循环机制执行addTarget这个方法的,所以可以被执行这个方法;那么swift中怎么解决这个问题呢? 加: @objc,让这个方法以OC运行时方式来调用;