Если представления SegmentControl имеют одинаковую конструкцию, вам не нужны отдельные ViewController для каждого.
Если в каждом списке совершенно разные пользовательские интерфейсы, есть много способов сделать это.
1 - Используйте scrollview, его ширина контента будет Screenwidth * количество просмотров.
Просто добавьте все виды в scrollView.
Например, вы хотите добавить два вида. Вот код
self.scrollView.contentSize = CGSize(width: UIScreen.main.bounds.size.width * 2, height: self.scrollView.frame.height)
let vc1 = your view controller
vc1.view.frame = CGRect(x: 0, y: 1, width: scrollView.frame.size.width , height: scrollView.frame.size.height)
let vc2 = your second viewcontroller
vc2.view.frame = CGRect(x: UIScreen.main.bounds.size.width, y: 1, width: scrollView.frame.size.width , height: scrollView.frame.size.height)
scrollView.addSubview(vc2.view)
scrollView.addSubview(vc1.view)
Теперь, если вы хотите изменить видимый вид
scrollView.scrollRectToVisible(CGRect(x: UIScreen.main.bounds.size.width * CGFloat(//Position of your view 1 or 2), y: 0.0, width: UIScreen.main.bounds.size.width, height: scrollView.frame.size.height), animated: true)
2- Использовать контейнеры
3 - Есть также очень хорошие библиотеки с открытым исходным кодом (pods). Одна из них - CarbonKit
https://github.com/ermalkaleci/CarbonKit