Можно ли добавить CNContactPickerViewController в качестве дочернего контроллера представления?
Я хочу добавить CNContactPickerViewController
в UITabBarController
как вкладка. Я достиг того же самого с ABPeoplePickerNavigationController
но тот же подход не работал для CNContactPickerViewController
, Есть что-то, что я пропустил или это невозможно.
Вот что я попробовал:
Примечание: когда я удаляю if #available(iOS 9, *)
это также работает в iOS 9.
class ContactsViewController: UIViewController, ABPeoplePickerNavigationControllerDelegate, CNContactPickerDelegate {
var contactsController: UIViewController!
override func awakeFromNib() {
contactsController = getAddressBook()
contactsController.view.frame = self.view.bounds
self.addChildViewController(contactsController)
contactsController.didMoveToParentViewController(self)
}
override func viewDidLoad() {
super.viewDidLoad()
self.contactsController.view.frame = self.view.bounds
self.view.addSubview(contactsController.view)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func getAddressBook() -> UIViewController {
if #available(iOS 9, *) {
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self;
contactPicker.displayedPropertyKeys = [CNContactPhoneNumbersKey]
return contactPicker
} else {
let addressBookController = ABPeoplePickerNavigationController()
addressBookController.peoplePickerDelegate = self
return addressBookController
}
}
}