Показать пользовательскую контактную информацию - PullRequest
1 голос
/ 04 июня 2011

Итак, у меня есть 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 Ответ

2 голосов
/ 06 июня 2011

Вот как это нужно сделать:

    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;
}
...