Я работаю над приложением iOS с контроллером панели основных вкладок с 5 вкладками внизу. Каждая вкладка представляет UINavigationController.
Мне нужен один из этих экранов, чтобы в нем был другой контроллер панели вкладок, который должен отображаться вдоль верхней части (внутри этого основного контроллера панели вкладок). Этот внутренний контроллер панели вкладок имеет только 2 вкладки и переключается между двумя контроллерами представления.
Вот иллюстрация (примечание: я не использую раскадровки, это просто быстрое визуальное представление, которое я сделал в раскадровке)
Я сразу подумал, что это работа для UISegmentedControl, однако UISegmentedControl, похоже, работает только с представлениями. вместо того, чтобы переключать контроллеры представления, вы устанавливаете контейнер просмотра и отображаете различные представления этого контейнера:
var simpleView1: UIView
var simpleView2: UIView
viewDidLoad() {
simpleView1 = SimpleVC1().view
simpleView2 = SimpleVC2().view
viewContainer.addSubview(simpleView1)
viewContainer.addSubview(simpleView2)
}
@IBAction func switchViewAction {
//if segment 1
viewContainer.bringSubView(toFront: simpleView1)
//
//if segment 2
viewContainer.bringSubView(toFront: simpleView2)
//
}
(взято из https://www.youtube.com/watch?v=e5nxg5NzLks)
Что Я хочу на самом деле установить разные viewController каждый раз с его собственным временем жизни и т. Д. c.
Одна из причин этого заключается в том, что один из контроллеров представления, который будет представлен этой внутренней вкладкой уже был завершен и работает отлично. Поэтому в идеале я бы хотел встроить этот контроллер представления во внутреннюю панель вкладок, назначить его одной вкладке и назначить новый контроллер представления новой вкладке.
Мой вопрос, учитывая эту информацию, что должно быть общий путь я должен взять здесь? Есть ли хороший способ добиться этого с помощью вложенных контроллеров панели вкладок или UISegmentedControl - это путь к go (хотя мне нужно было бы использовать VC вместо представлений.)