CNContactViewController shouldPerformDefaultActionForContactProperty = false не соблюдается
Несмотря на возвращение false
от contactViewController:shouldPerformDefaultActionForContactProperty:
iOS 9 переопределяет этот параметр и выполняет действие по умолчанию.
Например, нажав на свойство адреса контакта в CNContactViewController
перенаправляет в приложение Apple Maps.
ДЕЙСТВИЯ ПО ВОСПРОИЗВЕДЕНИЮ:
Представить CNContactViewController
для CNContact
через следующий код Swift:
func showContactViewController(forContact contact: CNContact) {
let contactViewController = CNContactViewController(forContact: contact)
contactViewController.contactStore = contactStore
contactViewController.delegate = self
contactViewController.hidesBottomBarWhenPushed = true
navigationController?.pushViewController(contactViewController, animated: true)
}
Программно вернуть false
от CNContactViewControllerDelegate
метод:
// Implement this method to determine the resulting behavior when a property is selected.
// Return false if you do not want anything to be done or if you are handling the actions yourself.
func contactViewController(viewController: CNContactViewController, shouldPerformDefaultActionForContactProperty property: CNContactProperty) -> Bool {
return false
}
В представленном CNContactViewController
коснитесь свойства адреса контакта.
Пользователь будет перенаправлен в приложение Apple Maps, несмотря на возвращение false
из вышеупомянутого метода делегата.
Любые идеи относительно того, как предотвратить это перенаправление?