改变所有视图控制器iphone的背景颜色

时间:2012-04-04 19:04:18

标签: iphone uiviewcontroller background-color

我需要在我的应用程序中同时更改所有UIview控件的背景颜色,例如选择蓝色使所有蓝色和绿色都相同。

4 个答案:

答案 0 :(得分:5)

一种方法是在颜色更改后触发通知并将所有视图控制器作为列表器。然后您可以更改为该通知调用的选择器中的颜色...

(如果你想避免一次又一次地编写整个过程,你可以创建一个基础视图控制器子类化UIViewController,所有的视图控制器将子类化这个基础视图控制器...这样做你只需要定义一个listner函数一次在baseviewcontroller)..希望这有助于...:)

答案 1 :(得分: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 :(得分:2)

您无法为backgroundColor设置UIViewController,仅适用于view属性。 好吧,您可以将此UIColor值设置为全局值,并在设置post,observer事件时设置它,该事件将转到每个UIViewController中的方法,以将其self.view.backgroundColor设置为指定的颜色。

答案 3 :(得分:2)

完成此任务的最佳方法是重构您的共同美学并将逻辑视图到基类。例如,在我的大多数项目中,我有一个名为BaseViewController的类。所有UIViewControllers都从这个基类扩展而来。在viewDidAppearviewDidLoad方法中,我为应用程序中的每个视图完成了相应的设置。然后,当您(不可避免地)想要更改应用的外观时,代码只能在 ONE 位置!