1

青を選択するのと同じように、アプリ内のすべてのUIviewcontrollerの背景色を同時に変更する必要があります。すべての青と緑が同じようになります。

4

4 に答える 4

5

1つのアプローチは、色が変更されたら通知を起動し、すべてのビューコントローラーをリスナーとして作成することです..その後、その通知のために呼び出されたセレクターで色を変更できます...

(この手順全体を何度も記述したくない場合は、UIViewController をサブクラス化するベース ビュー コントローラーを作成すると、すべてのビュー コントローラーがこのベースビュー コントローラーをサブクラス化します...これを行うと、baseviewcontroller で 1 回だけ listner 関数を定義する必要があります。 ) ..これが役立つことを願っています... :)

于 2012-04-04T19:34:01.550 に答える
3

ほとんどのアプリビューコントローラーは、一度に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];
    }
}
于 2012-04-04T19:48:29.367 に答える
2

backgroundColorforを設定することはできず、そのプロパティUIViewControllerに対してのみ設定できviewます。さて、あなたはこの値をグローバルとして作ることができます、そしてそれを設定するとき、それを指定された色に設定するためUIColorにそれぞれのメソッドに到達するイベントを投稿してオブザーバーします。UIViewControllerself.view.backgroundColor

于 2012-04-04T19:09:44.303 に答える
2

このタスクへの最善のアプローチは、一般的な美学とビュー ロジックを基底クラスにリファクタリングすることです。たとえば、私のプロジェクトのほとんどには、BaseViewController というクラスがあります。すべての UIViewControllers は、この基本クラスから拡張されます。viewDidAppearメソッドとメソッドで、viewDidLoadアプリケーションのすべてのビューに対して適切なセットアップを完了します。次に、(必然的に) アプリの外観を変更したい場合、コードは 1 か所だけです!

于 2012-04-04T21:04:09.740 に答える