ABPeoplePickerNavigationController в приложении TabBar - PullRequest
0 голосов
/ 20 июня 2011

Я создаю приложение для iPhone, которое должно выглядеть точно так же, как приложение Apple Dialer.дело в том, что у меня есть некоторые проблемы с этим.С контроллерами Apple очень сложно работать, и у них много проблем, может быть, кто-то здесь может мне помочь?

У меня есть приложение TabBar, и в одной из вкладок я создал ABPeoplePickerNavigationController.я разрешил пользователю удалять и редактировать контакт, но у меня есть 2 проблемы: 1) когда я нажимаю на редактировать -> удалить контакт, я получаю лист действий, всплывающий снизу, но часть кнопки «Отмена», которая законченаTabBar, я не могу нажать его.кнопка «Отмена» будет касаться только в том случае, если я нажму на ее верхнюю часть, где под ней не будет вкладки.(даже когда я вижу список действий поверх всего).

2) когда пользователь редактирует имя контакта, например, а затем нажимает кнопку «Назад», имя человека не изменится на новое имя всписок контактов.

моя архитектура такова: я создаю ABPeoplePickerNavigationController в «представлении действительно появилось» VC кнопки tabBar.для добавления нового человека я создаю новый контроллер и говорю: self modalviewcontroller: newPerson, поэтому, когда я нажимаю «Готово» или отменяю, вызывается «ViewDidAppear», и именно поэтому я могу видеть нового человека в контактах.но для редактирования контакта я использую pushviewcontroller: person, поэтому, когда всплывающее окно просмотра не вызывает функцию viewDidAppear.

что я могу сделать?Спасибо!

1 Ответ

0 голосов
/ 20 июня 2011

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

[actionSheet showFromTabBar:self.tabBarController.tabBar];

или даже лучше, чтобы оно отображалось в окне Windows

[actionSheet showInView:[[[UIApplication sharedApplication] delegate] window]];

.чтобы убедиться, что редактирование полей заканчивается правильно, прежде чем нажать кнопку «Назад».Фактически, если вы сфокусировали текстовое поле и не оставили его в покое, прежде чем вернуться на предыдущую страницу, вы не будете запускать события, которые обрабатываете, чтобы сохранить данные.Вы можете попытаться справиться с этими ситуациями в методе viewWillDisappear:.

...