Вы должны использовать контроллеры , а не только их представления. (var outbox: Outbox
вместо var outbox: UIView
, с правильной инициализацией) То, что вы делаете здесь, - это создание контроллера исходящих сообщений с его видом (который не может работать должным образом, не имея контроллера); затем контроллер Outbox освобождается, и представлению нечего показывать (контроллер Outbox, который также является источником данных представления, сразу освобождается).
Также я бы использовал TabBarController управлять дочерними контроллерами
// Create
contentTabBarController = UITabBarController()
addChild(contentTabBarController)
contentTabBarController.viewControllers = [Inbox(), Outbox()]
// Add subview either in nib file or here; do not forget to add proper constraints as well
container.addSubview(contentTabBarController.view)
//...
// Select inbox
contentTabBarController.selectedIndex = 0
// Select outbox
contentTabBarController.selectedIndex = 1