1

私は、元従業員によって作成されたプロジェクトに取り組んでいる新しい iOS 開発者です。現在、ナビゲーション バーはすべて黒で、デフォルトの青色に変更する必要があります。これまでのところ、私はこの行を理解しました:

[self.navigationController.navigationBar setTintColor:[[UIColor colorWithHue:0.6 saturation:0.33 brightness: 0.65 alpha:1.0] autorelease]];

うまくいきましたが、それが正しい方法だとは思いません。こちらも新規に作成した画面で色が青なので、どこかに設定があるに違いないと思います。xib ファイルでは、トップ バーはなしで、このコードは viewDidLoad にあります。

if (self.navigationController.navigationBar.isHidden) {
        [self.navigationController setNavigationBarHidden:NO animated:YES]; 
    }
    else {
        [self.navigationController setNavigationBarHidden:NO animated:NO];
    }

問題は、デフォルトの色を設定できる場所はありますか? または私はプログラムでそれをしなければなりません。

4

4 に答える 4

3

iOS 5 では Appearence を使用してそれを行うことができます

  [[UINavigationBar appearance]setTintColor:[UIColor redColor]];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsたとえば、あなたでこれを行うことができます。

以前のバージョンの iOS では、NavigationBar に Category を作成し、その描画メソッドをオーバーライドする必要がありました。

于 2012-06-21T16:57:28.083 に答える
1

Navigation Controller を作成するときに、バーの色を設定できます。

navigationController = [[UINavigationController alloc] initWithRootViewController: mainView];
self.navigationController.navigationBar.tintColor = [UIColor <whatever color you want>];

または、デフォルトの青色だけが必要な場合:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
于 2012-06-21T16:57:44.827 に答える
1

あなたはそれを正しい方法でやっています。pushViewController が使用されている場合 (たとえば、UITableViewController 内のアイテムの詳細ビューを表示する場合)、ナビゲーション バーは多くの ViewController 間で共有できます。

iOS5 には、より詳細なアプリ全体のテーマ設定のための新しい UIAppearance 機能があります。

于 2012-06-21T16:57:48.237 に答える
1

デフォルトの色を設定するには、次を使用します。

[[UINavigationBar appearance]setTintColor:nil];

グラデーションで別の色を設定するには、次を使用します。

[[UINavigationBar appearance]setTintColor:[UIColor colorWithHue:hue/359.0f
                                                     saturation:saturation/100.0f
                                                     brightness:brightness/100.0f
                                                          alpha:alpha]];

ご注意ください; 色相、彩度、明るさ、アルファはタイプfloatです。

于 2012-06-25T20:25:35.727 に答える