Ios 隐藏ABNewPersonViewController中的字段

Ios 隐藏ABNewPersonViewController中的字段,ios,abaddressbook,Ios,Abaddressbook,填写新联系人信息时,我希望向用户显示一个不包含所有默认字段的ABNewPersonViewController。我想不出如何做到这一点。可以隐藏一些字段吗?或者我需要编写自己的视图控制器吗?不,您不能从视图控制器隐藏字段,因为苹果希望在所有iOS应用程序中都保持相同。 因此,对于自定义行为,您必须编写自己的视图控制器并以编程方式添加联系人 有关参考信息,请参见: 您可以通过将displayPerson属性设置为分配的ABRecordRef来设置新联系人最初显示的值。只需将ABRecordRef的

填写新联系人信息时,我希望向用户显示一个不包含所有默认字段的ABNewPersonViewController。我想不出如何做到这一点。可以隐藏一些字段吗?或者我需要编写自己的视图控制器吗?

不,您不能从视图控制器隐藏字段,因为苹果希望在所有iOS应用程序中都保持相同。 因此,对于自定义行为,您必须编写自己的视图控制器并以编程方式添加联系人

有关参考信息,请参见:

您可以通过将
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;