Cocoa touch 如何在不连接通讯簿的情况下使用ABPersonViewController
设置: 我想了解如何在不从通讯录获取数据的情况下使用ABPersonViewConcoller。我有一个JSON web服务提供一个tableview,我的person对象作为字典存储在一个可变数组中 我的问题: 我一直在搜索,找不到任何关于将personViewController用于您自己的对象的引用。我是否可以初始化一个新的personView,将其分配给我的person对象并按下控制器?或者我最好还是用自己的观点复制苹果的观点 更新: 正如Eric建议的那样,使用ABRecordRef作为我的对象,它确实有效。下面是一个代码示例Cocoa touch 如何在不连接通讯簿的情况下使用ABPersonViewController,cocoa-touch,ios,ios4,Cocoa Touch,Ios,Ios4,设置: 我想了解如何在不从通讯录获取数据的情况下使用ABPersonViewConcoller。我有一个JSON web服务提供一个tableview,我的person对象作为字典存储在一个可变数组中 我的问题: 我一直在搜索,找不到任何关于将personViewController用于您自己的对象的引用。我是否可以初始化一个新的personView,将其分配给我的person对象并按下控制器?或者我最好还是用自己的观点复制苹果的观点 更新: 正如Eric建议的那样,使用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设备的通讯录(以及整个通讯录)相关联,因此我相信,滚动您自己的
UIViewController
会更容易获得您想要的。另外,请注意“个人视图控制器必须与导航控制器一起使用才能正常工作。”因此您(可能)在这方面受到限制
尽管如此(我还没有尝试过),但是显示的person属性似乎是
readwrite
,所以我想如果您的数据以ABRecordRef
的形式存储在数组中,它可能会起作用 是的,我知道这是可以做到的,我在斯坦福大学和其他大学的iphone应用程序中看到过。将它们添加为ABRecords可能就行了。我试试看。谢谢