Swift XCode: я должен использовать вложенные UITabBarControllers или UISegmentedControl в следующей ситуации? - PullRequest
0 голосов
/ 23 февраля 2020

Я работаю над приложением iOS с контроллером панели основных вкладок с 5 вкладками внизу. Каждая вкладка представляет UINavigationController.

Мне нужен один из этих экранов, чтобы в нем был другой контроллер панели вкладок, который должен отображаться вдоль верхней части (внутри этого основного контроллера панели вкладок). Этот внутренний контроллер панели вкладок имеет только 2 вкладки и переключается между двумя контроллерами представления.

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

enter image description here

Я сразу подумал, что это работа для 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 вместо представлений.)

...