隐藏ABNewPersonViewController中的字段

时间:2013-11-16 11:19:51

标签: ios abaddressbook

在填写新的联系信息时,我想向用户显示一个不包含所有默认字段的ABNewPersonViewController。我无法弄清楚如何实现这一目标。是否可以隐藏某些字段或者我是否需要编写自己的视图控制器?

2 个答案:

答案 0 :(得分:0)

不,您无法隐藏视图控制器中的字段,因为Apple希望通过所有iOS应用程序保持相同。 因此,对于自定义行为,您将编写自己的视图控制器并以编程方式添加联系人

参考参考: How to add new contact to iOS Address Book?

答案 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;