2016-08-28 3 views
6

ABAddressBookを使用して、連絡先の "新しい連絡先の作成"と "既存の連絡先への追加"彼らは以前見たことがなかった、私は作成し、ABUnknownPersonViewControllerを提示するだろう。CNContactViewController()の "新しい連絡先の作成"と "既存の連絡先への追加"

この機能をCNContactsフレームワークに複製する方法はありません。 CNContactViewController(forUnknownContact: contact)はうまくいくように思えましたが、残念ながら、これはユーザーに「メッセージを送る」または「連絡先を共有する」ことしかできません。

CNContactsの新しい連絡先または既存の連絡先の1つとして連絡先をアドレス帳に保存する方法を教えてください。

func presentContact() { 

    let status = CNContactStore.authorizationStatusForEntityType(.Contacts) 

    switch status { 
    case .Authorized:() 
    case .NotDetermined: requestAccess() 
    case .Denied, .Restricted: accessDenied() 
    } 

    print("authorized? \(status == .Authorized)") //prints "authorized? true" 

    let unknown = CNContactViewController(forUnknownContact: contact!) 

    unknown.delegate = self 

    self.navigationController?.pushViewController(unknown, animated: false) 

} 

私はアクセスを要求しようとする場合でも、ユーザーは連絡先を保存することはできません。

+1

誰か投票してください。 – 5813

+0

実際のコードを表示していないためです。あなたのコードを表示してください!あなたはまだ重要なすべての種類のものを残していますが、あなたがそれらを行うべきであることを知らないので、スタックオーバーフローにあなたのコードを貼り付けるのが怠惰であるかどうかは分かりません。 「接触」とは何ですか? 'unknown'の' contactStore'を設定した行を表示してください。これらのことはすべて重要です。 _SHOW。きみの。リアル。 CODE._ – matt

+0

私はまだ重要な部分は除外していますか? 'contact'は任意の数のプロパティが設定された任意の' CNContact'です。私はそれがどのようにアクションボタンが表示されていないかに影響を与える可能性があるのか​​分かりません。 'unknown'の' contactStore'プロパティが設定されていることを除いて、すべてがここにあります。これが問題になります。ご協力いただきありがとうございます。私が最小限の再現可能な例を作る際にいくつかのコーナーを切り取ってしまったのは残念です。できるだけシンプルで簡単にできるようにしようとしていました。 – 5813

答えて

11

実際のコードは表示されないようにしてください。お手伝いはできません。だから私は興味を失った。私はちょうど私の実際のコードを表示し、それを勉強して、私がやっていることとあなたがやっていることの違いについて考えてみましょう。ここに実際の作業コードがあります。あなたがたを行くと同様の操作を行います。

let con = CNMutableContact() 
con.givenName = "Johnny" 
con.familyName = "Appleseed" 
con.phoneNumbers.append(CNLabeledValue(
    label: "woods", value: CNPhoneNumber(stringValue: "555-123-4567"))) 
let unkvc = CNContactViewController(forUnknownContact: con) 
unkvc.message = "He knows his trees" 
unkvc.contactStore = CNContactStore() 
unkvc.delegate = self 
unkvc.allowsActions = false 
self.navigationController?.pushViewController(unkvc, animated: true) 

enter image description here

+0

しかし、私がここで説明しているバグに注意してください:http://stackoverflow.com/q/32973254/341994 – matt

+0

上記の投稿は_really_、_actually_は私の実際のコードです。行の行、単語の単語、それは私の '.swift'ファイルの1つにあります。 'contactStore'を設定しないことは問題でした。あなたは私を助けました。 – 5813

0

CNContactStoreのハンドルにあなたのunknown変数のcontactStoreプロパティを設定しているあなたは、あなたのコード内で逃しています。

[...] 

unknown.contactStore = CNContactStore() 

[...] 
関連する問題