2012-02-25 3 views
2

Я пытаюсь изменить цвет контроллера панели навигации, а также контроллер панели вкладокИзменения TabBarController & NavigationController при использовании MonoTouch.Dialog

Я использую 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); 
    } 

Где я хотел бы изменить цвет? чтобы я мог изменить верх и низ?

ответ

2

Если вы нацелились на iOS 5 (и более поздние версии), вы должны посмотреть на новую функцию UIAppearance. Это позволит вам установить внешний вид всех типов элементов управления для вашего приложения (один раз, а не для каждого создаваемого вами).

Э.Г. называя это

UINavigationBar.Appearance.TintColor = UIColor.Black; 
UITabBar.Appearance.TintColor = UIColor.Green; 

от вашего FinishedLaunching сделает всю навигационную панель с черным фоном, даже те из MonoTouch.Dialog (вместо синего по умолчанию) и панель вкладок с зеленым фоном (вместо черного).

примечание 1: перед iOS5 вам необходимо установить свойства *Color для каждого элемента управления (что менее интересно, так как вы не всегда имеете к ним доступ).

примечание 2: вы креатин новый экземпляр UIWindow два раза, т.е. называется в FinishedLaunching и CreateTabs

window = new UIWindow (UIScreen.MainScreen.Bounds); 
следующее
Смежные вопросы