Я очень новичок в кодировании на Swift и пытаюсь научить себя. У меня возникли проблемы с выяснением того, как включить множественный выбор из пользовательского интерфейса ContactPicker View в Swift 3.
Из чтения документации кажется, что для включения множественного выбора я должен использовать [CNContactProperty]
, но это неоднозначно. Когда я делаю это, я не могу вызвать свойство для печати данного имени и значения, потому что они не являются членами массива. Также, когда я использую синтаксис [CNContactProperty]
, в моем представлении выбора не отображается кнопка «Готово» для завершения выбора. Отмена — мой единственный способ выйти из режима выбора.
Я нашел много ответов для предыдущих версий Swift, но меня интересует, как использовать эту функцию в Swift 3. В конечном итоге я пытаюсь предварительно заполнить поле контактов в UIMessageComposer
, чтобы отправить сообщение нескольким контактам из массива одним нажатием кнопки отправки.
// this is the code that works for a single selection
import UIKit
import ContactsUI
import Contacts
class MainViewController: UIViewController, CNContactPickerDelegate {
// select Contacts to message from "Set Up" Page
@IBAction func pickContacts(_ sender: Any) {
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
self.present(contactPicker, animated: true, completion: nil)
}
//allow contact selection and dismiss pickerView
func contactPicker(_ picker: CNContactPickerViewController, didSelect contactsProperty: CNContactProperty) {
let contact = contactsProperty.contact
let phoneNumber = contactsProperty.value as! CNPhoneNumber
print(contact.givenName)
print(phoneNumber.stringValue)
}