2012-04-04 3 views

ответ

2

Вы не можете установить backgroundColor для UIViewController, только для его view. Ну, вы можете сделать это значение UIColor глобальным, и при настройке его, события post и observer, которое будет доступно для метода в каждом UIViewController, чтобы установить его self.view.backgroundColor указанному цвету.

4

Один подход заключается в огнь уведомления после того, как цвет меняется, и сделать все viewcontrollers, как Читающая мысль .. то вы можете изменить цвет в селекторе называется для этого уведомления ...

(Если и хотят не записывайте всю эту процедуру снова и снова, вы можете создать контроллер базового представления, подклассифицирующий UIViewController, и все контроллеры view будут подклассифицировать этот контроллер baseview ... делая это, вам нужно будет определить функцию listner только один раз в baseviewcontroller) .. надеясь, что это помогает ... :)

3

Большинство диспетчеров просмотра приложений видны только по одному. Если это верно для вашего приложения, то ваши VC могут установить цвет фона своего представления до того, как они появятся.

- (void)viewWillAppear:(BOOL)animated { 

    if (/* the condition that makes me supposed to have a blue background */) { 

     // I was supposed to be blue already, but nobody can see me yet, 
     // so everything is cool 

     self.view.backgroundColor = [UIColor blueColor]; 
    } 
} 
2

Лучший подход к этой задаче состоит в том, чтобы реорганизовать вашу общую эстетику и взглянуть на логику базового класса. Например, в большинстве моих проектов у меня есть класс под названием BaseViewController. Все UIViewControllers простираются от этого базового класса. В методах viewDidAppear и viewDidLoad я завершаю соответствующую настройку для каждого вида в приложении. Затем, когда вы (неизбежно) хотите изменить внешний вид своего приложения, код находится только в ОДИН место!

Смежные вопросы