Управление представлением контейнера с помощью сегментированного элемента управления, потерянной вставки навигационного контроллера

У меня есть контроллер представления (внутри контроллера навигации), который имеет сегментированный элемент управления с 2 параметрами и представлением контейнера, где 2 UITableViewControllers будут отображаться в соответствии с выбранным сегментом.

Первое представление загружается в раскадровку (crt + click), встраивается и связывается с контейнером, и таблица загружается нормально, таблица начинается над панелью навигации, но когда я меняю сегмент и загружается другое представление, оно начинается с верхняя часть представления, за панелью навигации. (Когда я тоже вернусь к первому виду)

Чтобы изменить представление, я следую этому: Swift - Как связать два контроллера представления в одно представление контейнера и переключаться между ними с помощью сегментированного управления?

И вот мой код:

let viewControllerIdentifiers = ["categoriasTVC", "unidadesTVC"]

@IBAction func opcion(sender: AnyObject) {
    let newController = (storyboard?.instantiateViewControllerWithIdentifier(viewControllerIdentifiers[sender.selectedSegmentIndex]))! as UIViewController
    let oldController = childViewControllers.last! as UIViewController

    oldController.willMoveToParentViewController(nil)
    addChildViewController(newController)
    newController.view.frame = oldController.view.frame

    transitionFromViewController(oldController, toViewController: newController, duration: 0, options: .TransitionNone, animations:{ () -> Void in
        // nothing needed here
        }, completion: { (finished) -> Void in
            oldController.removeFromParentViewController()
            newController.didMoveToParentViewController(self)
    })

}

Как я могу сохранить встроенный навигационный контроллер?


person Pablo carrió    schedule 25.05.2016    source источник