Я работаю в приложении для iPad, которое имеет разделенное представление с контроллером навигации в подробном представлении. Самое глубокое представление, которое может быть в стеке навигации, - это представление редактирования, где пользователь может редактировать данные. Я помещаю кнопку редактирования как rightBarButtonItem, и когда редактирование начинается, меняем его на готовую кнопку.
Когда редактирование начинается, и пользователь касается определенного поля, я представляю всплывающее окно со списком возможных вариантов, отфильтрованных по тому, что они печатают, - форма автозаполнения, основанная на всех значениях этого поля во всех других объектах.
Это прекрасно работает, если только вы не нажмете кнопку «Готово». Поповер ест это прикосновение и отклоняет себя. Таким образом, пользователь должен коснуться снова.
Я пытался использовать свойство passthroughViews для uipopovercontroller, но UIBarButtonItem не является представлением, и нет документированного способа получить представление для кнопки «Готово» или даже панели навигации. Я могу получить доступ к переменной в GDB, но она не доступна через KVC.
Любые идеи о том, как я могу предотвратить необходимость постучать дважды?
Я думал о распознавателе жестов в окне, но это кажется грязным, и мне придется справиться с вращением.