Я полагаю, что я выполнил шаги других 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)
}