     // MARK: Gestures
     
     func addDrawerGestures() {
-        centerViewController?.view.userInteractionEnabled = false
+        centerViewController?.view.isUserInteractionEnabled = false
         drawerView.centerViewContainer.addGestureRecognizer(toggleDrawerTapGestureRecognizer)
     }
     
     func restoreGestures() {
         drawerView.centerViewContainer.removeGestureRecognizer(toggleDrawerTapGestureRecognizer)
-        centerViewController?.view.userInteractionEnabled = true
-    }
-    
-    func centerViewContainerTapped(sender: AnyObject) {
+        centerViewController?.view.isUserInteractionEnabled = true
+    }
+    
+    func centerViewContainerTapped(_ sender: AnyObject) {
         closeDrawer(currentlyOpenedSide, animated: true) { (finished) -> Void in
             // Do nothing
         }

        currentlyOpenedSide = side
    }
    
    public func closeDrawer(side: KGDrawerSide, animated: Bool, complete: (finished: Bool) -> Void) {
        if (currentlyOpenedSide == side && currentlyOpenedSide != .None) {
            if let sideView = drawerView.viewContainerForDrawerSide(side) {
                let centerView = drawerView.centerViewContainer
                animator.dismissDrawer(side, drawerView: sideView, centerView: centerView, animated: animated, complete: complete)
                currentlyOpenedSide = .None
                restoreGestures()
                drawerView.willCloseDrawer(self)
            }
        }
    }
    
    public func toggleDrawer(side: KGDrawerSide, animated: Bool, complete: (finished: Bool) -> Void) {
        if side != .None {
            if side == currentlyOpenedSide {
                closeDrawer(side, animated: animated, complete: complete)
            } else {

import UIKit

public enum KGDrawerSide: CGFloat {
    case none  = 0
    case left  = 1
    case right = -1
}

open class KGDrawerViewController: UIViewController {
    
    let defaultDuration:TimeInterval = 0.3
    
    // MARK: Initialization
    
    override public init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
    }

