Как сделать view child vc как на скриншоте?

Для создания подобной структуры интерфейса, где одно view controller является дочерним для другого, необходимо использовать контроллеры контейнеров.

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

1. Создайте основной UIViewController, который будет содержать контейнеры для вложенных view controller'ов. К этому контроллеру вы можете применить UINavigationController, чтобы иметь возможность отображать заголовок и кнопки навигации на верхней панели.

class MainViewController: UIViewController {
    // IBOutlet для контейнера, в который будем добавлять вложенные view controller'ы
    @IBOutlet weak var containerViewController: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Создание и добавление первого вложенного view controller'а
        let childVC1 = ChildViewController1()
        addChild(childVC1)
        containerViewController.addSubview(childVC1.view)
        childVC1.view.frame = containerViewController.bounds
        childVC1.didMove(toParent: self)
    }

    // Метод для переключения между вложенными view controller'ами
    func switchChildViewController() {
        // Удаление текущего дочернего view controller'а
        let currentChildVC = children.first
        currentChildVC?.willMove(toParent: nil)
        currentChildVC?.view.removeFromSuperview()
        currentChildVC?.removeFromParent()

        // Добавление нового дочернего view controller'а
        let childVC2 = ChildViewController2()
        addChild(childVC2)
        containerViewController.addSubview(childVC2.view)
        childVC2.view.frame = containerViewController.bounds
        childVC2.didMove(toParent: self)
    }
}

2. Создайте два дочерних view controller'а, которые будут отображаться внутри контейнера.

class ChildViewController1: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Настройка интерфейса для первого дочернего view controller'а
    }
}

class ChildViewController2: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Настройка интерфейса для второго дочернего view controller'а
    }
}

3. Создайте сторибоард и добавьте в него MainViewController с соответствующими IBOutlet'ами и IBAction'ами. Подключите контейнер view к IBOutlet, чтобы иметь возможность добавлять вложенные view controller'ы.

4. Для переключения между дочерними view controller'ами можно использовать IBAction для кнопки, например:

@IBAction func switchChildViewControllerButtonPressed(_ sender: UIButton) {
    switchChildViewController()
}

Таким образом, вы можете создать иерархию с вложенными view controller'ами, что позволит вам создавать и управлять подобными интерфейсами в iOS.