青を選択するのと同じように、アプリ内のすべてのUIviewcontrollerの背景色を同時に変更する必要があります。すべての青と緑が同じようになります。
4 に答える
1つのアプローチは、色が変更されたら通知を起動し、すべてのビューコントローラーをリスナーとして作成することです..その後、その通知のために呼び出されたセレクターで色を変更できます...
(この手順全体を何度も記述したくない場合は、UIViewController をサブクラス化するベース ビュー コントローラーを作成すると、すべてのビュー コントローラーがこのベースビュー コントローラーをサブクラス化します...これを行うと、baseviewcontroller で 1 回だけ listner 関数を定義する必要があります。 ) ..これが役立つことを願っています... :)
ほとんどのアプリビューコントローラーは、一度に1つしか表示されません。それがアプリに当てはまる場合、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];
}
}
backgroundColor
forを設定することはできず、そのプロパティUIViewController
に対してのみ設定できview
ます。さて、あなたはこの値をグローバルとして作ることができます、そしてそれを設定するとき、それを指定された色に設定するためUIColor
にそれぞれのメソッドに到達するイベントを投稿してオブザーバーします。UIViewController
self.view.backgroundColor
このタスクへの最善のアプローチは、一般的な美学とビュー ロジックを基底クラスにリファクタリングすることです。たとえば、私のプロジェクトのほとんどには、BaseViewController というクラスがあります。すべての UIViewControllers は、この基本クラスから拡張されます。viewDidAppear
メソッドとメソッドで、viewDidLoad
アプリケーションのすべてのビューに対して適切なセットアップを完了します。次に、(必然的に) アプリの外観を変更したい場合、コードは 1 か所だけです!