CNContactViewController shouldPerformDefaultActionForContactProperty = false不受尊重

时间:2015-11-02 23:21:21

标签: ios9 cncontactviewcontroller

尽管从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地图应用。

有关如何阻止此重定向的任何想法?

0 个答案:

没有答案