Отображение ABPeoplePickerNavigatorController в существующем UINavigationController - PullRequest
0 голосов
/ 02 июля 2010

У меня есть приложение, в котором у меня есть UINavigationController во всплывающем окне, которое отображает некоторую информацию. Корневой элемент содержит кнопку, показывающую связанный контакт. Я хотел бы нажать кнопку контакта и отобразить ABPeoplePickerNavigationController. У меня есть этот код, чтобы сделать это:

ABPeoplePickerNavigationController *contactController = [[ABPeoplePickerNavigationController alloc] init];
[self.navigationController pushViewController:contactController animated:YES];

Однако, когда я нажимаю кнопку, я получаю эту ошибку: Нажатие контроллера навигации не поддерживается .

Итак: есть ли способ получить доступ к представлениям в ABPeoplePickerNavigationController (с помощью topViewController или visibleViewController оба выдают ошибку), или альтернативный способ сделать это будет приветствоваться.

1 Ответ

2 голосов
/ 28 декабря 2010

Используйте это, чтобы показать NavigationController. Проблема для вас заключается в том, что вы можете выдвинуть только представление в вашем контроллере, а не весь контроллер навигации:

ABPeoplePickerNavigationController *controller = [[ABPeoplePickerNavigationController alloc] init];
// place the delegate of the picker to the controll
controller.peoplePickerDelegate = self;


NSArray *properties = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty],nil];
controller.displayedProperties = properties;

// showing the picker
[self presentModalViewController:controller animated:YES];

U может использовать часть свойств или нет. Вы также должны реализовать протокол Делегата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...