     addChildViewController(controller)
     view.insertSubview(controller.view, belowSubview: tabbyBar)
     tabbyBar.prepareTranslucency(translucent)
-    applyNewConstraints(controller.view)
+    applyNewConstraints(controller)
   }
 
   func hideBar() {


    heightConstant = constant

    view.constraint(subview, attributes: .leading, .trailing, .top)
    view.addConstraints([
      NSLayoutConstraint(
        item: subview, attribute: .height,
        relatedBy: .equal, toItem: view,
        attribute: .height, multiplier: 1,
        constant: constant)
      ])
  }

  // MARK: - Constraints

  func setupConstraints() {
    view.constraint(tabbyBar, attributes: .leading, .trailing, .bottom)
    view.addConstraints([
      NSLayoutConstraint(
        item: tabbyBar, attribute: .height,
        relatedBy: .equal, toItem: nil,
        attribute: .notAnAttribute,
        multiplier: 1, constant: Constant.Dimension.height)
      ])
  }
}

extension TabbyController {

  public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
    if viewController.hidesBottomBarWhenPushed {
      toggleAnimation.toValue = UIScreen.main.bounds.height + tabbyBar.frame.size.height
      tabbyBar.layer.add(toggleAnimation, forKey: Key.animationKey)
      tabbyBar.frame.origin.y = UIScreen.main.bounds.height + tabbyBar.frame.size.height
    } else {

    }
  }
}

  struct Key {
    static var animationKey = "toggleTabbyAnimation"
  }

  var heightConstraint: NSLayoutConstraint?

  lazy var hiddenConstraint: NSLayoutConstraint = { [unowned self] in
    let constraint = NSLayoutConstraint(
      item: self.tabbyBar, attribute: .height,
      relatedBy: .equal, toItem: nil,
      attribute: .notAnAttribute,
      multiplier: 1, constant: 0)

    return constraint
    }()

  lazy var shownConstraint: NSLayoutConstraint = { [unowned self] in
    let constraint = NSLayoutConstraint(
      item: self.tabbyBar, attribute: .height,
      relatedBy: .equal, toItem: nil,
      attribute: .notAnAttribute,
      multiplier: 1, constant: Constant.Dimension.height)

    return constraint
  }()

  lazy var toggleAnimation: CABasicAnimation = {
    let animation = CABasicAnimation(keyPath: "position.y")
