         
         if (indexPath? != nil && indexPath?.row != kIndexPathOutMenu.row) {
             //self.lastIndexInSession[indexPath?.section] = indexPath?.row
+            self.saveViewControler(controller!, atIndexPath: indexPath!)
+        }
+        
+        self.addChildViewController(self.fontViewController!)
+        let controllerView: UIView = self.fontViewController!.view
+        controllerView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
+        controllerView.frame = self.view.bounds
+        self.view.addSubview(controllerView)
+        self.fontViewController?.didMoveToParentViewController(self)
+    }
+    
+    // storyboard support
+    
+    override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
+        if segue is AirViewControllerSegue && sender? == nil {
+            var nextIndexPath: NSIndexPath = self.currentIndexPath!
+            if segue?.identifier == PHSegueRootIdentifier {
+                if self.delegate != nil && self.delegate?.respondsToSelector("indexPathDefaultValue") != nil {
+                    //nextIndexPath = self.delegate.indexPathDefaultValue()??
+                }
+            }
+            var segu: AirViewControllerSegue = segue? as AirViewControllerSegue
+            segu.peformHandler = {(rvc_segue: AirViewControllerSegue, svc: UIViewController, dvc: UIViewController) -> Void in
+                self.bringViewControllerToTop(dvc, indexPath: nextIndexPath)
+            }
+        }
+    }
+    
+    // ContentView
+    
+    func contentViewDidTap(recognizer: UITapGestureRecognizer) {
+        if self.airImageView?.tag == 1 {
             
-            
-        }
-    }
-    
-    // storyboard support
-    
-    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
-        
-    }
-    
-    // ContentView
-    
-    func contentViewDidTap(recognizer: UITapGestureRecognizer) {
-        
+        }
     }
     
     // Gesture Delegate
 
     func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
+        if isAnimation == false {
+            return false
+        }
         return true
     }
     
     // AirImageView gesture
     
     func handleSwipeOnAirImageView(swipe: UISwipeGestureRecognizer) {
-        
+        self.hideAirViewOnComplete({() -> Void in
+            self.bringViewControllerToTop(self.fontViewController, indexPath: self.currentIndexPath)
+        })
     }
     
     func handleTapOnAirImageView(swipe: UISwipeGestureRecognizer) {
-        
+        self.hideAirViewOnComplete({() -> Void in
+            self.bringViewControllerToTop(self.fontViewController, indexPath: self.currentIndexPath)
+        })
     }
     
     // Gesture Based Reveal
     
     func handleRevealGesture(recognizer: UIPanGestureRecognizer) {
-        
+        if self.sessionViews?.count == 0 && self.sessionViews?.count == 1 {
+            return
+        }
+        
+        switch recognizer.state {
+        case UIGestureRecognizerState.Began:
+            self.handleRevealGestureStateBeganWithRecognizer(recognizer)
+            break
+        case UIGestureRecognizerState.Changed:
+            self.handleRevealGestureStateChangedWithRecognizer(recognizer)
+            break
+        case UIGestureRecognizerState.Ended:
+            self.handleRevealGestureStateEndedWithRecognizer(recognizer)
+            break
+        case UIGestureRecognizerState.Cancelled:
+            self.handleRevealGestureStateCancelledWithRecognizer(recognizer)
+            break
+        default:
+            break
+        }
     }
     
     func handleRevealGestureStateBeganWithRecognizer(recognizer: UIPanGestureRecognizer) {

    var middleSession: AirbnbSessionView?
    var bottomSession: AirbnbSessionView?
    
    var lastIndexInSession: Dictionary<Int, AirbnbSessionView>?
    /* [ // session 0
    {0 : thumbnail image 0,1 : thumbnail image 1},
    // session 1

        self.sessionViews = Dictionary<Int, AirbnbSessionView>()
        self.currentIndexSession = 0
        
        self.lastIndexInSession = Dictionary<Int, Int>()
        //self.lastIndexInSession[0] = nil
        self.currentIndexPath = NSIndexPath(forItem: 0, inSection: 0)
        
