簡體   English   中英

Iphone ABUnknownPersonViewController使用allowAddingToAddressBook = YES問題

[英]Iphone ABUnknownPersonViewController using allowsAddingToAddressBook = YES issue

讓我先解釋一下我想做什么。 在“最近”選項卡中的本機Iphone中,如果單擊任何地址簿中未找到的聯系人,則可以選擇“添加到現有聯系人”

Iphone最近的項目

點擊“添加到現有聯系人”后,會出現一個選擇器並進行選擇。 然后它會自動將您帶到ABPersonViewController並允許您編輯或保存新聯系人:

PersonViewController

我試圖重新創建這個,但有一些問題。 在我的版本中,在我創建UnknownPersonViewController並且最終用戶按下“添加到現有聯系人”之后,選擇器顯示並允許從類似於本機Iphone的地址簿中進行選擇。 但在進行選擇后,名稱會自動添加到地址簿中,並且沒有personViewController顯示給用戶選擇是否添加聯系人。 即使我可以讓它在做出選擇后不自動寫入地址簿,我也可以讓它立即在編輯模式下顯示personviewcontroller。

所以我的問題是為什么在做出選擇后會自動更新地址簿? 我將ABUnknownpersonviewcontroller推送到UITableviewController導航控制器上。 和我在iOS 6.01的物理設備上進行測試以下是一些代碼:

 ABRecordRef person = ABPersonCreate ();
 ABMutableMultiValueRef multiValue = ABMultiValueCreateMutable(kABStringPropertyType);
    ABMultiValueAddValueAndLabel(multiValue, call.number,      kABPersonPhoneMainLabel, 
                                 NULL);
    ABRecordSetValue(person, kABPersonPhoneProperty, multiValue, error);
    if(multiValue) CFRelease(multiValue);


 ABUnknownPersonViewController *unknownCtrl = [[ABUnknownPersonViewController alloc] init];
unknownCtrl.displayedPerson = person; //this has a phone number with "main" label
unknownCtrl.allowsActions = YES;
unknownCtrl.allowsAddingToAddressBook = YES;
unknownCtrl.editing=NO;
unknownCtrl.unknownPersonViewDelegate = self;

    // unknownCtrl.addressBook=ABAddressBookCreate(); // I tried setting addressbook to nil and object
unknownCtrl.addressBook=nil;

[self setTitle:call.type forUIViewController:unknownCtrl];

[self.navigationController pushViewController:unknownCtrl animated:YES];

注意:我對這篇文章有類似的問題: http//forums.macrumors.com/archive/index.php/t-1023140.html

也許https://discussions.apple.com/thread/1682620?start=0&tstart=0

更新:似乎我把kABPersonPhoneMainLabel從該人那里,然后它不會將電話號碼寫入聯系人。 我做的是在didResolveToPerson委托中我在編輯模式下調用personviewcontroller。 這模擬了本機行為。 這可以回答我自己的問題,謝謝大家。

ABUnknownPersonViewController不公開許多自定義選項,您需要實現自己的版本。 這不是太難 - “創建新聯系人”按鈕只是啟動ABNewPersonViewController ,“添加到現有聯系人”啟動ABPeoplePickerNavigationController 您的ViewController應該充當這些對象的委托,並控制它們完成后會發生什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM