      */
 	public function hideActionBar(animate:Boolean = true):void
 	{	
-		if (actionBar && actionBar.visible)
-		{
-			animateActionBarVisbility = animate;
-			actionBarVisibilityInvalidated = true;
-			invalidateProperties();
-		}
-		else
-		{
-			actionBarVisibilityInvalidated = false;
-		}
+        if (!actionBar)
+            return;
+        
+        showingActionBar = false;
+        animateActionBarVisbility = animate;
+        actionBarVisibilityInvalidated = true;
+        
+        invalidateProperties();
 	}
 	
     //--------------------------------------------------------------------------

    {
        super.active = value;
        
        if (navigationStack.length == 0 && firstView != null)
        {
            navigationStack.push(firstView, firstViewData);
            viewChangeRequested = true;
            invalidateProperties();
        }
        
        // If the navigator isn't initialized, this means the first validation
        // pass hasn't been completed yet.  The top view will be added in that
        // process and doesn't need to be done here.
        if (initialized)
        {
            if (value)
            {
                var view:View = createViewInstance(navigationStack.topView);
                view.active = true;
            }
            else
            {
                activeView.active = false;
                destoryViewInstance(navigationStack.topView);                
            }
        }
    }

    
    /**
     *  @private
     */
    private var showingActionBar:Boolean;
    
    /**
     *  @private
     *  Flag indicates whether the navigator is in the process of
     *  changing a view.
     */ 
