Xib как TabBar, некорректное отображение


#1

Что уже есть: xib file с тремя кнопками, каждый из которых открывает popup от родительского view, в IBAction использовал следующий код:
// create present on UIView
if var topController = UIApplication.shared.keyWindow?.rootViewController {
while let presentedViewController = topController.presentedViewController {
topController = presentedViewController
}

                               // topController now can use for present.
    let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let newViewController = storyBoard.instantiateViewController(withIdentifier: "Gender") as! GenderView

                        topController.addChild(newViewController)
                        newViewController.view.frame = topController.view.frame
                        topController.view.addSubview(newViewController.view)
                        newViewController.didMove(toParent: topController)
                           }

Но возникла проблема, родительским считается view с которого я перешел, у меня есть главная страница, и внизу три кнопки, открывающие другие view(Попапы), в открывшихся view(Попапах) так же стоят эти три кнопки, как сделать так, чтобы они родительским считали родительским именно главную страницу?


#2

Если я правильно понял, передавать в ваши попапы слабую ссылку на ваш родительский view, из которого все открывается.


#3

Если честно не совсем понял( Еще раз: у меня есть 4 контроллера каждый с одним и тем же xib файлом, код выше работает так, что считает родительским тот, с которого был сделан переход, а мне надо чтобы родительским всегда был один, а не постоянно менялся, то иерархия должна быть такой:
1
/ | \
2. 3. 4
а сейчас: все в разнобой