我需要在我的应用程序中同时更改所有UIview控件的背景颜色,例如选择蓝色使所有蓝色和绿色都相同。
答案 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都从这个基类扩展而来。在viewDidAppear
和viewDidLoad
方法中,我为应用程序中的每个视图完成了相应的设置。然后,当您(不可避免地)想要更改应用的外观时,代码只能在 ONE 位置!