[我相信我已经遵循了其他SO线程的步骤,当敲击UIBarButtonItem时通过另一种方法来调用动作,但是我不断收到以下错误Argument of '#selector' does not refer to an '@objc' method, property, or initializer
,并且该错误突出显示了#selector
文本。] >
这是设置按钮:
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "\(barButtonItemText)", style: .done, target: self, action: #selector(inviteMethod(inviteMethod: inviteMethodSelected!)))
这是在点击按钮时我试图运行的方法:
func inviteMethod (inviteMethod:String) { let inviteMethod = inviteMethod if inviteMethod == "email" { inviteViaEmail(invitedContacts: self.invitedContacts) } else { inviteViaText(invitedContacts: self.invitedContacts) } }
如果有帮助,可以使用其中一种邀请方法的示例
func inviteViaEmail (invitedContacts:[Contact]) {
var invitedContactsEmails:[String] = []
for contactEmails in invitedContacts {
let emailAddress = contactEmails.emailAddress ?? ""
invitedContactsEmails.append(emailAddress)
}
let mc = MFMailComposeViewController()
mc.mailComposeDelegate = self as? MFMailComposeViewControllerDelegate
mc.setToRecipients(invitedContactsEmails)
mc.setSubject("Invite for Gallery App, Event \(event?.eventName)")
mc.setMessageBody("This is a test invite email \n\n\(event?.eventHost) has invited you to join their event", isHTML: false)
self.present(mc, animated: true, completion: nil)
}
[我相信我已经遵循了其他SO线程的步骤,当敲击了UIBarButtonItem时,通过另一种方法调用了一个动作,但是我不断收到以下错误信息'#selector'...
UIBarButtonItem
的动作–以及所有其他UIControl
对象–可以采用一个参数,即对象本身或没有参数。
UIBarButtonItem
的动作可以采用一个参数,即按钮本身或不带参数。