Возврат от первого контроллера в UINavigationController

#ios #swift

Вопрос:

У меня есть UITabBarController корневое представление в моем приложении. Отсюда один из контроллеров просмотра, который UITabBarController показывает, должен открыть другой вид с помощью кнопки «Назад», чтобы вернуться к тому, что находится внизу, — UIViewController к тому, что UITabBarController показывалось.

Я создал сегмент UIViewController изнутри UITabBarController , чтобы открыть UINavigationController , который затем показывает новый UIViewController .

Проблема, с которой я сталкиваюсь, заключается в том, что нет кнопки «Назад», чтобы вернуться до UINavigationController — что имеет смысл, поскольку представления перед навигационным контроллером не являются частью стека.

Как лучше всего справиться с этой ситуацией? В этом случае я просто хочу открыть UIViewController окно, которое может углубляться дальше, но в конечном счете мне нужно, чтобы на нем была кнопка UIViewController UINavigationController «Назад», чтобы вернуться к UITabBarController нему .

Большое спасибо.

Ответ №1:

Вам нужно представить саму навигацию с

 self.present(nav......
 

затем отклоните его, нажав кнопку «Назад» в первом окне этой навигации

 self.dismiss.....
 

Комментарии:

1. self.performSegue(с идентификатором: «segue_name», отправитель: self) — это не сработает?

2. Проблема в том, что кнопка «Назад» не отображается в первом VC, потому что это первое, что есть в стеке.

Ответ №2:

Вероятно, вы хотите смоделировать поведение навигационного контроллера в модальном представлении, вы можете добиться этого, добавив панель навигации в первый UIViewController внутри стека UINavigationController, затем добавьте элемент кнопки левой панели с действием

самоотвод(анимация: ложь)

Он будет вести себя как навигационный контроллер и решит ваш вопрос, но вы не получите прокрутку контроллера навигации назад из. box, и анимация перехода отличается.

(В подобных случаях я бы предпочел просто модальное представление без маскировки)

Комментарии:

1. Значит ли это, что вы вообще не будете использовать навигационный контроллер? Просто используйте модальную презентацию?

2. @sark9012 нет, используется навигационный контроллер, но модальное представление по умолчанию и очевидно с кнопкой «Закрыть» вместо «назад».

3. @sark9012 кстати, говорят, что он предпочитает использовать создание и представление пользовательских контроллеров представлений, а не использовать seques