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 из вышеупомянутого метода делегата.

Любые идеи относительно того, как предотвратить это перенаправление?

0 ответов

Другие вопросы по тегам