Предотвратить анимацию UINavigationBar в пользовательском контейнере

Я следовал этому руководству Реализация контроллера представления контейнера, чтобы создать контейнер, который будет обрабатывать вход/выход в приложении.

Контроллеры дочерних представлений: UINavigationController для входа в систему и UITabBarController для остальной части приложения:

диаграмма

Моя проблема в том, что UINavigationBar странно анимируется, и я хочу предотвратить его анимацию:

переход

Код анимации в основном такой (полный код проекта здесь):

    let current = childViewControllers.first
    current?.willMoveToParentViewController(nil)

    child.securityContainer = self
    addChildViewController(child)

        child.view.frame = newChildOriginFrame

        UIView.transitionWithView(view, duration: 0.3, options: [], animations: {

            child.view.frame = newChildTargetFrame
            current?.view.frame = oldChildTargetFrame

            self.view.addSubview(child.view)

        }, completion: { _ in

            child.didMoveToParentViewController(self)
            current?.view.removeFromSuperview()
            current?.removeFromParentViewController()
            current?.securityContainer = nil
        })

Как я могу предотвратить анимацию UINavigationBar?


person paiv    schedule 25.07.2016    source источник


Ответы (1)


Исправлено, переместив addSubview за пределы блока анимации:

let current = childViewControllers.first
current?.willMoveToParentViewController(nil)

child.securityContainer = self
addChildViewController(child)

    child.view.frame = newChildOriginFrame

    view.addSubview(child.view)

    UIView.transitionWithView(view, duration: 0.3, options: [], animations: {

        child.view.frame = newChildTargetFrame
        current?.view.frame = oldChildTargetFrame

    }, completion: { _ in

        child.didMoveToParentViewController(self)
        current?.view.removeFromSuperview()
        current?.removeFromParentViewController()
        current?.securityContainer = nil
    })

(полный исходный код проекта)

person paiv    schedule 25.07.2016