2016-12-14 15 views
3

CNContactPickerViewControllerを使用しています。連絡先の詳細からアクションボタン(call、message、facetime)を非表示にしたいとします。CNContactPickerを使用すると、連絡先の詳細でアクションボタンが表示されない

CNContactViewControllerのプロパティは約allowActionsですが、わかりませんが、CNContacPickerViewControllerを使用すると、このプロパティにどのようにアクセスできますか。

CNContactPickerViewControllerを使用すると、連絡先の詳細から操作ボタンを非表示にすることはできますか?

+0

解決方法はありますか?私は私の申請に同じ要件を持っています。 –

+0

はい、独自のContactViewControllerを書きました)) – Artem

答えて

0

allowActionsプロパティをCNContactPickerViewControllerと使用することはできません。私はこのアプローチを使用しており、連絡先の詳細は表示されていません。このようなリストのみを表示します。enter image description here

その後、任意の連絡先を選択して委任する方法で連絡先の連絡先をお知らせします。

-(void) openDeviceContactList { 
    CNContactPickerViewController *contactPicker = [CNContactPickerViewController new]; 
    contactPicker.delegate = self; 
    [self presentViewController:contactPicker animated:YES completion:nil]; 
} 

- (void) contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact { 
    [self getPhoneNumberFrom:contact]; 
} 

-(void)getPhoneNumberFrom:(CNContact *)contactObject { 

    NSString * phone = @""; 
    NSString * userPHONE_NO = @""; 
    for(CNLabeledValue * phonelabel in contactObject.phoneNumbers) { 
     CNPhoneNumber * phoneNo = phonelabel.value; 
     phone = [phoneNo stringValue]; 
     if (phone) { 
      userPHONE_NO = phone; 
     } 
     break; 
    } 
    NSLog(@"PHONE NO :: %@",userPHONE_NO); 
} 

連絡先リストを開くボタンタップの[self openDeviceContactList];に電話してください。これにより、CNContactPickerViewControllerが表示されます。このためにはCNContactPickerDelegateを実装しなければなりません。また、とContacts.frameworkBuild Settingsから追加する必要があります。

これは動作コードです。

IMP注:これはiOS 9.0以降でのみ動作します。 8.0以降をサポートしている場合は、OSチェックを追加してAddressBook.frameworkを使用してください。& AddressBookUI.framework

+0

CNContactPickerViewControllerにはallowActionsプロパティがありません。 – Artem

+0

@ArtemUpdated答えを確認してください。そして現在のプロジェクトからのその作業ソリューション。 – Pushkraj

+0

いいえ、私は連絡先の詳細を表示する必要があり、私はアクションボタンを非表示にしたいと思います。 http://www.howtogeek.com/wp-content/uploads/2016/09/pcm_top.pngこれは、どのボタンを非表示にしたいかの例です。 おそらく、私はdidContentDelateにCNContactViewControllerを表示する必要がありますか? – Artem

関連する問題