             distance = (1 - containerView.rightViewSlideOffset) * containerView.rightViewWidth
         }
 
-        let isClosed: Bool = drawerState == .Closed
+        let sideViewContainer: UIView = sideViewContainerFor(side)
+        let closed: Bool = drawerState == .Closed
 
         drawerState = .SettlingOpen
         currentDrawerSide = side
 
-        if isClosed  {
-            sideViewController.beginAppearanceTransition(true, animated: animated)
-            delegate?.sideDrawerController?(self, willOpenViewController: sideViewController, forSide: side, animated: animated)
-
-            sideViewContainerFor(side).hidden = false
+        if closed {
+            willOpenViewController(sideViewController, forSide: side, animated: animated)
+
+            sideViewContainer.hidden = false
 
             if side == .Left {
                 containerView.leftView = sideViewController.view

            distance = containerView.rightViewSlideOffset * containerView.rightViewWidth
        }

        drawerState = .SettlingClosed

        sideViewController.beginAppearanceTransition(false, animated: animated)
        delegate?.sideDrawerController?(self, willCloseViewController: sideViewController, forSide: side, animated: animated)

        if side == .Left {
            containerView.leftViewSlideOffset = 0


            self.containerView.userInteractionEnabled = true

            self.didOpenViewController(sideViewController, forSide: side, animated: animated)

            completion?(finished)
        }
