尽管从false
返回contactViewController:shouldPerformDefaultActionForContactProperty:
,但iOS 9似乎会覆盖此设置并执行默认操作。
例如,点击CNContactViewController
中联系人的地址属性会重定向到Apple地图应用。
再现的步骤:
通过以下Swift代码为CNContactViewController
提供CNContact
:
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
中,点按联系人的地址属性。
尽管从上述委托方法返回false
,用户仍将被重定向到Apple地图应用。
有关如何阻止此重定向的任何想法?