         view.addSubview(scrollView)
         view.addConstraints([.top, .bottom, .leading, .trailing].anchor(from: scrollView, to: view))
         view.backgroundColor = .clear
+        
+        appearanceHandler.contentsDequeueHandler = { [weak self] in
+            self?.cachedViewControllers
+        }
+    }
+    
+    public override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        appearanceHandler.callApparance(.viewWillAppear, animated: animated, at: leftSidePageIndex)
+    }
+    
+    public override func viewDidAppear(_ animated: Bool) {
+        super.viewDidAppear(animated)
+        appearanceHandler.callApparance(.viewDidAppear, animated: animated, at: leftSidePageIndex)
+    }
+    
+    public override func viewWillDisappear(_ animated: Bool) {
+        super.viewWillDisappear(animated)
+        appearanceHandler.callApparance(.viewWillDisappear, animated: animated, at: leftSidePageIndex)
+    }
+    
+    public override func viewDidDisappear(_ animated: Bool) {
+        super.viewDidDisappear(animated)
+        appearanceHandler.callApparance(.viewDidDisappear, animated: animated, at: leftSidePageIndex)
     }
 
     override public func viewDidLayoutSubviews() {

    fileprivate var numberOfPages: Int = 0
    fileprivate var explicitPaging: ExplicitPaging?

    /// The object that acts as the delegate of the content view controller.
    public weak var delegate: PagingContentViewControllerDelegate?
    


extension PagingContentViewController: UIScrollViewDelegate {
    public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        guard !(scrollView.isDragging && scrollView.isDecelerating) else {
            return
        }
        
        explicitPaging = ExplicitPaging(oneTimeHandler: { [weak self, leftSidePageIndex = leftSidePageIndex] in
            guard let _self = self else { return }
            _self.delegate?.contentViewController(viewController: _self, willBeginPagingAt: leftSidePageIndex, animated: false)
            _self.explicitPaging?.start()
            _self.appearanceHandler.beginDragging(at: leftSidePageIndex)
        })
        leftSidePageIndex = Int(scrollView.contentOffset.x / scrollView.bounds.width)
        delegate?.contentViewController(viewController: self, willBeginManualScrollOn: leftSidePageIndex)
