如何在不连接到AddressBook的情况下使用ABPersonViewController

安装程序:我正在寻找使用ABPersonViewContoller而不从AddressBook获取数据的见解。 我有一个JSON Web服务喂食一个tableview,我有我的个人对象存储在一个mutableArray作为字典。

我的问题:我一直在search,无法find任何引用与您自己的对象使用personViewController。 我可以启动一个新的人物分配给我的人物,并推动控制器? 或者我会更好地滚动我自己的观点来复制苹果吗?

更新:正如埃里克build议使用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]; 

希望这有助于他人。

ABPersonViewController绑定到iOS设备的AddressBook(带有整个地址簿UI框架 ),所以我相信将自己的UIViewController滚动到你想要的更容易。 此外, 该文档指出“人员视图控制器必须与导航控制器一起使用才能正常工作”。 所以你(可能)在那里受到限制。

这说(我没有尝试过),但它似乎displayedPerson属性是readwrite ,所以我想如果你的数据存储在您的数组作为ABRecordRef它可能工作。