3

falseから戻ったにもかかわらずcontactViewController:shouldPerformDefaultActionForContactProperty:、iOS 9 はこの設定をオーバーライドし、デフォルトのアクションを実行するようです。

たとえば、連絡先の住所プロパティをタップするCNContactViewControllerと、Apple Maps アプリにリダイレクトされます。

再現する手順:

次の Swift コードを使用して、aCNContactViewControllerに対して a を提示します。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 Maps アプリにリダイレクトされます。

このリダイレクトを防ぐ方法についてのアイデアはありますか?

4

0 に答える 0