ABPeoplePickerNavigationController - удалить кнопку “Cancel”, не используя частные методы/свойства?

Я использую ABPeoplePickerNavigationController, подкласс UINavigationController, и в контексте я использую его, военно-морская кнопка панели по умолчанию для правой стороны, "Отмены", не имеет никакого смысла. Я не могу найти способ отключить или скрыть его, и независимо от того, что метод использовал потребности быть общедоступным и утверждаемым хранилищем. Избавление от военно-морской панели полностью (picker.navigationBarHidden = ДА;) могла бы быть опция за исключением того, что после сования назад к списку контактов военно-морская панель вновь появляется. При разделении на подклассы ABPeoplePickerNavigationController и прерывании viewWillAppear для попытки ноля не работала кнопка отмены. [средство выбора setAllowsCancel:NO]; ДЕЙСТВИТЕЛЬНО работает, но не документирован, таким образом, я, никогда ожидаю не передавал бы одобрение.

5
задан Adam Eberbach 23 October 2009 в 05:30
поделиться

5 ответов

На этом нет ответа на это - напишите новую пикур человека, если вы не можете жить с отменой.

0
ответ дан 14 December 2019 в 13:40
поделиться

Вы можете достичь этого результата, просматривая вложенные представления picker. Просто немного скучно...

0
ответ дан 14 December 2019 в 13:40
поделиться

Установите делегат на контроллер PeoplePickerController. В классе делегата имейте этот метод делегата.

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
 UIView *pCustomView = [[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)];
 UIBarButtonItem *pBtn = [[UIBarButtonItem alloc] initWithCustomView:pCustomView];
 [viewController.navigationItem setRightBarButtonItem:pBtn animated:NO];
 [pBtn release];
 [pCustomView release];
}
0
ответ дан 14 December 2019 в 13:40
поделиться

Я еще не пробовал, но думаю, что Uby предлагает перебирать подпредставления средства выбора, пока вы не найдете тот, который является isKindOfClass: [класс UIBarButtonItem], а затем вы можете изменить его название собственности. Это также может быть в массиве 'Item' навигационной панели.

0
ответ дан 14 December 2019 в 13:40
поделиться

Не забудьте установить делегат для объекта выбора (не peoplePickerDelegate, а просто делегат) в класс, реализующий следующий метод:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
UIView *custom = [[UIView alloc] initWithFrame:CGRectMake(0,0,0,0)];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithCustomView:custom];
[viewController.navigationItem setRightBarButtonItem:btn animated:NO];
[btn release];
[custom release];
} 
0
ответ дан 14 December 2019 в 13:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: