2013-02-08 42 views
4

讓我先解釋一下我想做什麼。在最近通話選項卡原生的iPhone,如果你點擊你有一個選項,任何地址簿中沒有找到聯繫人「添加到現有聯繫人」Iphone ABUnknownPersonViewController using allowsAddingToAddressBook = YES issue

Iphone Recents Item

點擊「添加到現有聯繫人」後,一個選擇器出現,你做出選擇。此後,它帶給你,自動將ABPersonViewController,並允許您編輯或保存新聯繫人:

PersonViewController

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

所以我的問題是爲什麼它會在選擇後自動更新地址簿? Im將ABUnknownpersonviewcontroller推到UITableviewController navigationcontroller上。並在物理設備上的IM測試與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

UPDATE:看起來如果我把kABPersonPhoneMainLabel從這個人那裏,那麼它不會把電話號碼寫到聯繫人。後來我做了doResolveToPerson委託,我在編輯模式下調用了personviewcontroller。這模擬了本地行爲。這可以回答我自己的問題,謝謝大家。

+0

wt你想要?和wt是你的問題?告訴我排序..謝謝:) – iPatel 2013-02-08 15:21:21

+0

嗨,我的問題是,在我的代碼上面,當用戶按下「添加到現有的聯繫人」Iphone自動添加聯繫人選定的人,並不允許用戶取消或編輯合併之前聯繫。簡而言之,我不希望Iphone自動合併聯繫人,Iphone本身並不像這樣。我想讓Iphone調出一個ABPersonViewController並讓用戶選擇取消保存合併的聯繫人。 – j2emanue 2013-02-08 15:24:27

回答

0

ABUnknownPersonViewController不公開許多自定義選項,您需要實現自己的版本。這並不難 - 「創建新聯繫人」按鈕只會啓動ABNewPersonViewController,「添加到現有聯繫人」將啓動ABPeoplePickerNavigationController。你的ViewController應該充當這些對象的委託並控制它們完成時發生的事情。

相關問題