我有一个名为SocialLogin.swift的文件,里面有一个带有一些功能的类,请参见下文。
但是我想做的是让FirstViewController.swift设置一个具有动作的按钮。
“操作”是调用SocialLogin.shared.checkLogin()。但是,每次运行时,它似乎崩溃了,这使我对其执行此操作的原因一无所知。
当我运行相同的代码,而不是将其发送到共享类时,我将其发送到本地函数,它可以正常工作。
let buttonIcon = UIImage(systemName: "person.circle")
let rightBarButton = UIBarButtonItem(title: "Person", style: UIBarButtonItem.Style.done, target: self, action: #selector(SocialLogin.shared.checkLogin(_:)))
rightBarButton.image = buttonIcon
self.tabBarController?.navigationItem.rightBarButtonItem = rightBarButton
这是SocialLogin.swift文件
class SocialLogin {
static let shared = SocialLogin()
@objc func checkLogin(_ sender:UIBarButtonItem!){
print("checking now")
}
@objc func loginFacebook(){
print("test")
}
}
最佳答案
只要设定适当的目标!
let rightBarButton = UIBarButtonItem(title: "Person", style: UIBarButtonItem.Style.done, target: SocialLogin.shared, action: #selector(SocialLogin.checkLogin(_:)))