public void SetAppearance(UINavigationController controller, ShellAppearance appearance)
        {
            var background = appearance.BackgroundColor;
            var foreground = appearance.ForegroundColor;
            var titleColor = appearance.TitleColor;

            var navBar = controller.NavigationBar;

            if (_defaultTint == null)
            {
                _defaultBarTint         = navBar.BarTintColor;
                _defaultTint            = navBar.TintColor;
                _defaultTitleAttributes = navBar.TitleTextAttributes;
            }

            if (!background.IsDefault)
            {
                navBar.BarTintColor = BarAppearanceTrackerUtils.UnblendColor(background).ToUIColor();
            }
            if (!foreground.IsDefault)
            {
                navBar.TintColor = foreground.ToUIColor();
            }
            if (!titleColor.IsDefault)
            {
                navBar.TitleTextAttributes = new UIStringAttributes
                {
                    ForegroundColor = titleColor.ToUIColor()
                };
            }
        }
        public void SetAppearance(UITabBarController controller, ShellAppearance appearance)
        {
            var background      = appearance.BackgroundColor;
            var foreground      = appearance.ForegroundColor;
            var unselectedColor = appearance.UnselectedColor;
            var tabBar          = controller.TabBar;

            if (_defaultTint == null)
            {
                _defaultBarTint        = tabBar.BarTintColor;
                _defaultTint           = tabBar.TintColor;
                _defaultUnselectedTint = tabBar.UnselectedItemTintColor;
            }

            if (!background.IsDefault)
            {
                tabBar.BarTintColor = BarAppearanceTrackerUtils.UnblendColor(background).ToUIColor();
            }
            if (!foreground.IsDefault)
            {
                tabBar.TintColor = foreground.ToUIColor();
            }
            if (!unselectedColor.IsDefault)
            {
                tabBar.UnselectedItemTintColor = unselectedColor.ToUIColor();
            }
        }
 protected virtual void SetAppearance(ShellAppearance appearance)
 {
     SetValues(appearance.BackgroundColor.IsDefault ? _defaultBackgroundColor : BarAppearanceTrackerUtils.UnblendColor(appearance.BackgroundColor),
               appearance.ForegroundColor.IsDefault ? _defaultForegroundColor : appearance.ForegroundColor,
               appearance.UnselectedColor.IsDefault ? _defaultUnselectedColor : appearance.UnselectedColor);
 }