我正在尝试更改导航栏控制器和标签栏控件的颜色
我正在使用monotouch.dialog来构建我的应用程序并拥有以下代码
public partial class AppDelegate : UIApplicationDelegate
{
// class-level declarations
UIWindow window;
//
// This method is invoked when the application has loaded and is ready to run. In this
// method you should instantiate the window, load the UI into it and then make the window
// visible.
//
// You have 17 seconds to return from this method, or iOS will terminate your application.
//
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
// create a new window instance based on the screen size
window = new UIWindow (UIScreen.MainScreen.Bounds);
// If you have defined a view, add it here:
// window.AddSubview (navigationController.View);
CreateTabs();
// make the window visible
window.MakeKeyAndVisible ();
return true;
}
protected void CreateTabs()
{
window = new UIWindow (UIScreen.MainScreen.Bounds);
var nav = new UITabBarController ();
nav.ViewControllers = new UIViewController [] {
new HomeController("Home"),
new WhereToUseController(),
new TransactionsController(),
new SettingsController()
};
// nav.TabBarController.TabBar.BackgroundColor = UIColor.Green;
nav.CustomizableViewControllers = new UIViewController [0];
window.RootViewController = nav;
// window.BackgroundColor = UIColor.Orange;
window.MakeKeyAndVisible ();
}
我的一个控制器的示例
public override void LoadView ()
{
base.LoadView ();
//TableView.BackgroundColor = UIColor.Clear;
// ParentViewController.View.BackgroundColor = UIColor.Red;
}
public HomeController (string s)
{
TabBarItem = new UITabBarItem (s, null, 1);
var root = new RootElement (s) {
new Section () {
new UIViewElement("My Caption:", view, false),
new StyledStringElement("Hello","somevalue"),
new StringElement ("Welcome back Shane"),
new ImageElement(new UIImage("Images/QR.png")),
}
};
PushViewController (new DialogViewController (root), false);
}
我的意思是改变颜色?允许我改变顶部和底部?
答案 0 :(得分:2)
如果您定位iOS 5(以及更新版本),那么您应该查看新的UIAppearance
功能。它允许您为应用程序设置所有类型控件的外观(一次,而不是为您创建的每个控件)。
E.g。叫这个
UINavigationBar.Appearance.TintColor = UIColor.Black;
UITabBar.Appearance.TintColor = UIColor.Green;
来自FinishedLaunching
的将使所有导航栏都具有黑色背景,甚至是来自MonoTouch.Dialog(而不是默认蓝色)的导航栏和带有绿色背景(而不是黑色)的标签栏。
iOS5之前的 注1:您需要为每个控件设置*Color
属性(由于您并不总是有权访问它们,因此不太有趣)。
注意2:您是UIWindow
的新实例两次,即FinishedLaunching
和CreateTabs
window = new UIWindow (UIScreen.MainScreen.Bounds);