iPhone中的新联系表格中的预填充字段和完成按钮将保存联系

时间:2013-02-16 13:59:06

标签: iphone ios abaddressbook

我无法以新的iPhone联系方式以编程方式添加字段。

我可以通过查看“快速联系”示例打开新的联系表单,但我不知道如何在字段中添加详细信息,以便用户无需手动添加它们,用户可以选择完成或取消但是,他/她可以更改字段中的字段详细信息。

我使用以下代码来提供新的联系表单。

ABNewPersonViewController *picker = [[ABNewPersonViewController alloc] init];
picker.newPersonViewDelegate = self;
UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:picker];
[self presentModalViewController:navigation animated:YES];  
[picker release];
[navigation release];

请帮忙。

1 个答案:

答案 0 :(得分:2)

我通过以下代码完成了。

ABRecordRef person = ABPersonCreate();
CFErrorRef  error = NULL;

// firstname
ABRecordSetValue(person, kABPersonFirstNameProperty, @"Don Juan", NULL);

// email
ABMutableMultiValueRef email = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(email, @"expert.in@computer.com", CFSTR("email"), NULL);
ABRecordSetValue(person, kABPersonEmailProperty, email, &error);
CFRelease(email);

// Start of Address
ABMutableMultiValueRef address = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
NSMutableDictionary *addressDict = [[NSMutableDictionary alloc] init];
[addressDict setObject:@"The awesome road numba 1" forKey:(NSString *)kABPersonAddressStreetKey];
[addressDict setObject:@"0568" forKey:(NSString *)kABPersonAddressZIPKey];
[addressDict setObject:@"Oslo" forKey:(NSString *)kABPersonAddressCityKey];
ABMultiValueAddValueAndLabel(address, addressDict, kABWorkLabel, NULL);
ABRecordSetValue(person, kABPersonAddressProperty, address, &error);
[addressDict release];
CFRelease(address);
ABNewPersonViewController *picker = [[ABNewPersonViewController alloc] init];
picker.displayedPerson = person;
picker.newPersonViewDelegate = self;

UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:picker];
[self presentModalViewController:navigation animated:YES];

[picker release];
[navigation release];