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 アプリにリダイレクトされます。
このリダイレクトを防ぐ方法についてのアイデアはありますか?