我有一个名为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(_:)))

10-01 14:21