Как добавить кнопку «Готово» на панели навигации в промежуточные окна поповера? - PullRequest
1 голос
/ 23 февраля 2011

Я работаю в приложении для iPad, которое имеет разделенное представление с контроллером навигации в подробном представлении. Самое глубокое представление, которое может быть в стеке навигации, - это представление редактирования, где пользователь может редактировать данные. Я помещаю кнопку редактирования как rightBarButtonItem, и когда редактирование начинается, меняем его на готовую кнопку.

Когда редактирование начинается, и пользователь касается определенного поля, я представляю всплывающее окно со списком возможных вариантов, отфильтрованных по тому, что они печатают, - форма автозаполнения, основанная на всех значениях этого поля во всех других объектах.

Это прекрасно работает, если только вы не нажмете кнопку «Готово». Поповер ест это прикосновение и отклоняет себя. Таким образом, пользователь должен коснуться снова.

Я пытался использовать свойство passthroughViews для uipopovercontroller, но UIBarButtonItem не является представлением, и нет документированного способа получить представление для кнопки «Готово» или даже панели навигации. Я могу получить доступ к переменной в GDB, но она не доступна через KVC.

Любые идеи о том, как я могу предотвратить необходимость постучать дважды?

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

1 Ответ

1 голос
/ 06 апреля 2011

В случае, если кто-то попадет сюда из Google, скопируйте из другого вопроса:

Единственное решение, которое я нашел на данный момент, - это создать UIBarButtonItem с пользовательским UIButton, используя

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//code for styling button

UIBarButtonItem *b =  [[[UIBarButtonItem alloc]
                                         initWithCustomView:button]
                                         autorelease]

, а затем

popoverController.passthroughViews = [NSArray arrayWithObject:b.customView];

Но будьте готовы - вы не можете создать UIButton, который выглядит как UIBarButtoItem.Я закончил с созданием изображения, которое собрал UIBarButtonItem.

...