显示自定义联系信息

时间:2011-06-04 12:47:06

标签: iphone mkmapview contacts mapkit abpersonviewcontroller

所以我有一个MKMapView,我有一个带有公开按钮的针脚。我希望用户能够点击公开按钮和导航控制器来推送新的视图控制器。但我希望新的视图控制器看起来像联系人应用程序中标准的联系人viewController。我需要它来显示自定义联系信息,因为联系人不在用户联系人中。我一直在玩ABPerson,但我无法理解。我希望该联系页面看起来与标准页面完全一样。这就是我一直在玩的:

    ABPersonViewController *view = [[ABPersonViewController alloc] init];

ABPerson *person;

ABRecordRef ABPersonCreate (
                            void
                            );

view.personViewDelegate = self;
view.displayedPerson = person;
view.allowsEditing = NO;

[self.navigationController pushViewController:view animated:YES];
[view release];

我不确定该怎么做。我想要显示的联系信息包括商家名称,地址,电话号码等等。

非常感谢你。

1 个答案:

答案 0 :(得分:2)

以下是应该如何做的:

    ABUnknownPersonViewController *newPersonViewController = [[ABUnknownPersonViewController alloc] init];
    newPersonViewController.displayedPerson = [self personObject];
    [self.navigationController pushViewController:newPersonViewController animated:YES];

而不是回复[self personObject]

- (ABRecordRef)personObject {

    // Create a new Person object.
    ABRecordRef newRecord = ABPersonCreate();

    // Setting the value to the ABPerson object.
    //ABRecordSetValue(newRecord, kABPersonKindOrganization, @"Business Name", nil);    


    ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
    ABMultiValueAddValueAndLabel(multiPhone, @"1-555-555-5555", kABPersonPhoneMainLabel, NULL);
    ABRecordSetValue(newRecord, kABPersonPhoneProperty, multiPhone,nil);
    CFRelease(multiPhone);


    return newRecord;
}