Я создаю приложение на основе вкладок. Одна из кнопок вкладок отображает контроллер навигации при нажатии. Который в свою очередь отображает контроллер корневого представления по умолчанию, связанный с этим контроллером навигации.
Я хочу позволить пользователю вернуться назад по умолчанию к контроллеру, который отображается при нажатии этой кнопки панели вкладок. Концептуально «основной» контроллер, который отображается, когда пользователь нажимает кнопку панели вкладок, будет вторым контроллером в стеке навигации.
Причина, по которой я это делаю, заключается в том, что «задний» контроллер должен быть своего рода экраном настроек. Изменение настройки фактически сделает «главный» контроллер недействительным и его необходимо будет воссоздать. Я знаю, что мог бы сделать экран настроек в качестве контроллера модального вида, но когда модальный контроллер должен быть отклонен после изменения настройки, мне придется уничтожить «главный контроллер позади и перестроить его.
Так что моя идея состоит в том, чтобы просто вытащить «главный» контроллер из стека на экран настроек, а затем, как только они выберут настройку, перенести новый экземпляр «основного» контроллера представления в стек.
Мои две идеи были реализовать это:
- Установите корневой контроллер навигационных контроллеров на мой «задний» контроллер и переместите «главный» вид контроллера сверху. Затем каким-то образом переопределите кнопку панели вкладок, чтобы она всегда сначала отображала второй контроллер, который предоставляет кнопку возврата на панели навигации.
- Другая идея состоит в том, чтобы установить «основной» контроллер вида в качестве корневого элемента навигационных контроллеров, а затем добавить пользовательскую кнопку «назад» на панель навигации, которая при щелчке каким-либо образом вставит «назад» контроллер перед текущим, а затем выскочит к нему при нажатии.
Я не был успешно ни с одним из этих подходов. Я видел в приложениях, которые делают это, в основном, в приложениях Twitter, где вы можете вернуться к контроллеру по умолчанию, который загружается при нажатии на элемент панели вкладок.
Кто-нибудь знает, как это сделать? Я предпочел бы перейти вниз по кнопке панели вкладок, которая запускает второй контроллер в стеке навигации для загрузки по умолчанию.