MvxTabBarViewController标签栏色调颜色

时间:2014-08-25 23:28:13

标签: ios xamarin mvvmcross

我正在尝试找到一种在使用MvxTabBarViewController时更改标签栏色调颜色的方法。这不起作用:

public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        // ios7 layout
        if (RespondsToSelector(new Selector("edgesForExtendedLayout")))
            EdgesForExtendedLayout = UIRectEdge.None;

        if (ViewModel == null)
            return;

        var viewControllers = new UIViewController[]
                              {
                                CreateTabFor(ViewModel["Today"], "icon1", ViewModel.TodaysExercisesView),
                                CreateTabFor(ViewModel["Exercises"], "icon2", ViewModel.ExercisesView),
                                CreateTabFor(ViewModel["Progress"], "icon3", ViewModel.ProgressView)
                              };
        ViewControllers = viewControllers;
        CustomizableViewControllers = new UIViewController[] { };
        SelectedViewController = ViewControllers[0];

        // Causes null reference error
        this.TabBarController.TabBar.TintColor = UIColor.Blue;

    }

这样做的正确方法是什么? (编辑。原始问题是关于导航栏色调而不是标签栏,我实际上是指)

2 个答案:

答案 0 :(得分:3)

找到了解决方案。

UITabBar.Appearance.BarTintColor = UIColor.Blue;

这会全局改变风格,这就是我想要的。代码可以放在ViewDidLoad中,也可以放在其他地方。

有关Xamarin文档中Appearance API的更多信息,请点击此处: http://developer.xamarin.com/guides/ios/user_interface/introduction_to_the_appearance_api/

答案 1 :(得分:0)

您可以在ViewDidLoad()中使用此功能而不会出现任何问题:

this.TabBar.TintColor = UIColor.Blue;

这也为您提供了个人控制,而不是全局设置。