Хорошо, это странно, и я могу легко воспроизвести его с новым проектом.
Вот настройка:
У меня есть UISplitViewController. В левой части у меня есть UITabBarController. В этом контроллере панели вкладок у меня есть два UINavigationControllers. В контроллерах навигации у меня есть UITableViewControllers. У этих табличных представлений есть строки поиска.
Хорошо, что происходит с этой настройкой: если я нахожусь в портретном режиме и поднимаю это представление во всплывающем окне, а я запускаю поиск в одном из представлений таблицы и отменяю его, панель навигации перестает отвечать на запросы. То есть кнопка «назад», а также кнопка на правой стороне не могут быть нажаты.
Если я делаю то же самое в ландшафтном режиме, чтобы мы не были в поповере, этого не произойдет. Панель навигации остается отзывчивой.
Итак, проблема возникает только в поповере.
Я также заметил, что если я выполняю поиск, но нажимаю на элемент в результатах поиска, в результате чего что-то загружается в «подробный вид» разделенного представления и закрывается всплывающее окно, а затем возвращается к всплывающему окну и затем нажмите кнопку Отмена для поиска, панель навигации реагирует.
Мое приложение является универсальным приложением и использует тот же контроллер панели вкладок в интерфейсе iPhone, и оно работает там без этой проблемы.
Как я упоминал выше, я могу легко воспроизвести это в новом проекте. Вот шаги, если вы хотите попробовать это сами:
начать новый проект - разделенный вид
создать новый класс UITableViewController (я назвал TableViewController)
раскомментируйте метод viewDidLoad, а также строку rightBarButtonItem в viewDidLoad (поэтому у нас будет кнопка «Редактировать» на панели навигации)
введите любые значения, которые вы хотите вернуть из методов numberOfSectioinsInTableView и numberOfRowsInSection
откройте MainWindow.xib и выполните следующие действия:
обратите внимание, что вам нужно будет просмотреть xib в среднем «режиме просмотра», чтобы вы могли расширить содержимое пунктов
перетащите контроллер панели вкладок в xib, чтобы заменить элемент контроллера навигации
перетащите Навигационный контроллер в xib как другой элемент под контроллером панели вкладок
удалите два других контроллера вида, которые находятся под контроллером панели вкладок (так, теперь наша панель вкладок имеет только один контроллер навигации)
внутри контроллера навигации перетащите контроллер табличного представления и используйте его для замены контроллера представления (контроллера корневого представления)
изменить класс нового контроллера табличного представления на класс, созданный выше (для меня TableViewController)
дважды щелкните по представлению таблицы под новым контроллером представления таблицы, чтобы открыть его (будет отображаться на панели вкладок внутри контроллера разделения представления)
перетащите «Панель поиска и отображение поиска» на представление таблицы
сохранить xib
запустить проект в симуляторе
в портретном режиме нажмите кнопку Root List, чтобы вызвать всплывающее окно
обратите внимание, что кнопка «Редактировать» нажимается
нажмите в поле поиска - перейдем в режим поиска
нажмите кнопку Отмена, чтобы выйти из режима поиска
обратите внимание, кнопка Edit больше не работает
Так, кто-нибудь может помочь мне понять, почему это происходит?
Спасибо
Mark