2

ストーリーボードを使用していない cocoacontrols.com のココア iOS コンポーネントを使用しています。このクラスは新しいモーダル ビューを作成し、モーダル ビューの上部に NavigationBar があります。navigationBar の色を変更しようとしています。ストーリーボード ベースの他のすべてのビューでは、navigationBar を白に設定する STBaseViewController の基本クラスを使用します。

この cocoacontrol クラスを UIViewController ではなく STBaseViewController に変更しましたが、それでも背景が白に変わりません。

@interface BZPasscodeFieldController : STBaseViewController

ナビゲーションバーへの参照を行わないBZPasscodeFieldControllerでは、どのように表示されるのかわかりません(再び、ストーリーボードの唯一のxibがなく、ナビゲーションバーがありません)?

とにかく、ナビゲーションバーの背景色をプログラムで白にする方法を知っている人はいますか?

さらに、UINavigationBar を持つすべてのストーリーボード ビューコントローラーで、タイトルが表示される領域に UIButton を追加して、フォント/スタイルを簡単に変更し、クリックできるようにしました。プログラムで作成されたこの BZPasscodeFieldController の uinavigationBar に、これと同じ UIButton を追加する必要があります。どうすればそれを行うことができますか?

4

4 に答える 4

3

ナビゲーションバーの背景色を設定するには:

[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]];

ナビゲーションバーの色合いを設定するには:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
于 2014-11-08T04:36:47.323 に答える
1

ナビゲーションバーのタイトルの場所にあるボタンについての質問です。各 navigationBar にはtitleViewプロパティがあり、任意のビューを割り当てることができます。たとえば、このメソッドを見てください。BZPasscodeFieldController で呼び出すことができます。

- (void) setNavigationBarTitleButton
{
    UIButton* centralButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 44)];
    [centralButton setImage:navigationCentralButtonImage forState:UIControlStateNormal];
    [centralButton setShowsTouchWhenHighlighted:TRUE];
    [centralButton addTarget:self action:@selector(goHigher) forControlEvents:UIControlEventTouchDown];

    self.navigationItem.titleView = centralButton;

}

前の質問については、既に提供されている回答はすべて正しいものであり、適切な場所でそれらを呼び出します (たとえば、AppDelegate の application:didFinishLaunchingWithOptions: では、カスタム ビュー コントローラー クラスで何かが台無しにされない限り、うまく機能するはずです。

于 2013-07-28T00:59:54.633 に答える
1
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
于 2013-07-27T19:05:30.130 に答える
1
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
于 2013-07-27T19:13:24.273 に答える