我正在尝试找到一种在使用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;
}
这样做的正确方法是什么? (编辑。原始问题是关于导航栏色调而不是标签栏,我实际上是指)
答案 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;
这也为您提供了个人控制,而不是全局设置。