     }
     
     private func sendDidScrollToViewControllerNotification() {
-        if let delegate = self.delegate {
-            if let currentViewController = self.currentViewController() {
-                delegate.onboardingController(self, didScrollToViewController: currentViewController)
-            }
-        }
-    }
-    
-    private func updatePercentagesWithScrollView(scrollView:UIScrollView)
+        if let currentViewController = currentViewController {
+            delegate?.onboardingController(self, didScrollToViewController: currentViewController)
+        }
+    }
+    
+    private func updatePercentagesWithScrollView(scrollView:UIScrollView, animated:Bool)
     {
         // update viewcontrollers
+        
+        var currentlyFocusedViewController:UIViewController? = nil
+        
         for viewController in self.viewControllers {
             if let visibilityPercent = self.visibilityPercentForViewController(scrollView, viewController: viewController) {
                 if let animatedContentViewController = viewController as? OnboardingContentViewController {
                     animatedContentViewController.setVisibilityPercent(visibilityPercent)
                 }
+                
+                if visibilityPercent >= 0.5 && visibilityPercent < 1.5 {
+                    currentlyFocusedViewController = viewController
+                }
+            }
+        }
+        
+        if currentViewController != currentlyFocusedViewController {
+            currentViewController = currentlyFocusedViewController
+            
+            if animated {
+                UIView.animateWithDuration(0.2, animations: { () -> Void in
+                    self.setNeedsStatusBarAppearanceUpdate()
+                })
+            } else {
+                setNeedsStatusBarAppearanceUpdate()
             }
         }
 

    public private(set) var backgroundContentView:UIView?
    public private(set) var viewControllers:Array<UIViewController> = []
    
    private var scrollViewUpdatesEnabled:Bool = true
    public private(set) var pageViewController:UIPageViewController!
    
    public init(viewControllers:Array<UIViewController>, backgroundContentView:UIView? = nil, progressView:UIView? = nil) {
        super.init(nibName: nil, bundle: nil)

        view.backgroundColor = UIColor.whiteColor()
        self.view = view
        
        let pageViewController = UIPageViewController(transitionStyle: .Scroll, navigationOrientation: .Horizontal, options: nil)
        pageViewController.willMoveToParentViewController(self)
        self.addChildViewController(pageViewController)
        pageViewController.view.translatesAutoresizingMaskIntoConstraints = false
        self.view.addSubview(pageViewController.view)
        self.pageViewController = pageViewController
        
        self.view.addConstraints([
            NSLayoutConstraint(
                item: pageViewController.view, attribute: .Top,
                relatedBy: .Equal,
                toItem: self.view, attribute: .Top,
                multiplier: 1.0, constant: 0.0),
            NSLayoutConstraint(
                item: pageViewController.view, attribute: .Bottom,
                relatedBy: .Equal,
                toItem: self.view, attribute: .Bottom,
                multiplier: 1.0, constant: 0.0),
            NSLayoutConstraint(
                item: pageViewController.view, attribute: .Leading,
                relatedBy: .Equal,
                toItem: self.view, attribute: .Leading,
                multiplier: 1.0, constant: 0.0),
            NSLayoutConstraint(
                item: pageViewController.view, attribute: .Trailing,
                relatedBy: .Equal,
                toItem: self.view, attribute: .Trailing,
                multiplier: 1.0, constant: 0.0)
        ])
        
        pageViewController.didMoveToParentViewController(self)
        pageViewController.view.backgroundColor = UIColor.clearColor()
        
        pageViewController.delegate = self
        pageViewController.dataSource = self

        if let progressView = self.progressView {
            let progressViewHeight = progressView.frame.size.height
