在填写新的联系信息时,我想向用户显示一个不包含所有默认字段的ABNewPersonViewController。我无法弄清楚如何实现这一目标。是否可以隐藏某些字段或者我是否需要编写自己的视图控制器?
答案 0 :(得分:0)
不,您无法隐藏视图控制器中的字段,因为Apple希望通过所有iOS应用程序保持相同。 因此,对于自定义行为,您将编写自己的视图控制器并以编程方式添加联系人
答案 1 :(得分:0)
您可以通过将displayPerson
属性设置为您分配的ABRecordRef
来设置最初为新联系人显示的值。只需将ABRecordRef
的字段设置为您想要的值即可。
示例:
ABNewPersonViewController *newPersonController =
[[ABNewPersonViewController alloc] init];
newPersonController.newPersonViewDelegate = self;
ABRecordRef newPerson = ABPersonCreate();
NSString *number =
[AFEndPoint normalizePhoneAddress:[self.historyParticipant participant].endPointValue ];
CFTypeRef phoneProperty = ABMultiValueCreateMutable(kABStringPropertyType);
if (phoneProperty) {
ABMultiValueRef multi = ABMultiValueCreateMutableCopy(phoneProperty);
if (multi) {
ABMultiValueAddValueAndLabel(
multi,
(__bridge CFStringRef)number,
kABPersonPhoneMobileLabel,
nil);
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multi, nil);
CFRelease(multi);
}
CFRelease(phoneProperty);
}
newPersonController.displayedPerson = newPerson;