2010-11-17 84 views
1

設置: 我正在尋找使用ABPersonViewContoller而不從AddressBook獲取數據的見解。我有一個JSON web服務,它提供了一個tableview,我有我的個人對象存儲在一個mutableArray作爲字典。如何在不連接到AddressBook的情況下使用ABPersonViewController

我的問題: 我一直在尋找和找不到任何參考使用personViewController與你自己的對象。我可以初始化一個新的人物視圖爲其分配我的人物並推送控制器?或者我會更好地擺脫我自己的觀點來複制蘋果嗎?

更新: 正如埃裏克建議使用ABRecordRef作爲我的對象,它實際上工作。這裏是一個代碼示例。

// get index and set person object 
    int personIndex = [indexPath indexAtPosition: [indexPath length] - 1]; 
    ABRecordRef person = ABPersonCreate(); 

    ABRecordSetValue(person, kABPersonFirstNameProperty, [[personList objectAtIndex: personIndex] objectForKey: @"firstName"], nil); 
    ABRecordSetValue(person, kABPersonLastNameProperty, [[personList objectAtIndex:personIndex] objectForKey:@"lastName"], nil); 

    // initialize a personviewController 
    ABPersonViewController *personViewController = [[ABPersonViewController alloc] init]; 

    personViewController.personViewDelegate = self; 
    personViewController.displayedPerson = person; 
    personViewController.allowsEditing = NO; 

    // push to view controller 
    [[self navigationController] pushViewController:personViewController animated:YES]; 
    [personViewController release]; 

希望這有助於他人。

回答

2

ABPersonViewController綁定到iOS設備的AddressBook(整個Address Book UI Framework),所以我相信它會更容易滾動自己的UIViewController得到你想要的。此外,the docs請注意,「人員視圖控制器必須與導航控制器一起使用才能正常運行。」所以你(可能)在那裏受到限制。

不過(我還沒有嘗試過),但它確實出現了displayedPerson屬性爲readwrite,所以我想,如果您的數據存儲陣列中作爲一個ABRecordRef它可能工作。

+0

是的我知道它可以做到,我在斯坦福大學和其他大學的iPhone應用程序中看到它。將它們添加爲ABRecords可能會正常工作。我會盡力去看看。謝謝! – h3r2on 2010-11-19 14:30:21

相關問題