0

ナビゲーションバーの外観を設定する場所がありnavigation view controllerます。root view controller次のようになります。

UIImage *navBarImage = [UIImage imageNamed:@"GreyUp.png"];
[[UINavigationBar appearance] setBackgroundImage:navBarImage
                                       forBarMetrics:UIBarMetricsDefault];

ただし、これにより、以下のすべてのView Controllerの外観が変更navBarされますが、これは望ましくありません。1つnavBarはルートビュー用で、もう1つは別のビュー用です。これはどのように達成できますか?

4

5 に答える 5

2

外観とは、すべてのアプリ navBar に適用されているため、これをすべてのビュー コントローラーに追加できることを意味します

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"GreyUp.png"]];
于 2013-01-16T11:55:35.463 に答える
1

viewWillAppearrootViewController で、navigationBar をカスタマイズします。

rootViewController で、viewWillDisAppear残りのナビゲーション階層に表示する変更を行います。

于 2013-01-16T12:18:37.127 に答える
1

はい、ビューでこれを使用して達成できます。表示されます

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar.png"] forBarMetrics:UIBarMetricsDefault];

// カスタム戻るボタン用

UIButton*    btnBack= [Utils createButtonWithTarget:self selector:@selector(btnBackClicked) frame:CGRectMake(0,5, 100, 40) bgimageName:@"tab_back.png" tag:0];//My method use yours
        self.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:btnBack];
      //use btnBack ref to change font title title color etc

ボタンを作成するための私の Utils クラス コード

+ (UIButton *)createButtonWithTarget:(id)target
                            selector:(SEL)selector
                               frame:(CGRect)frame
                         bgimageName:(NSString *)imageName
                                 tag:(NSInteger)aTag{
    UIButton *button = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    button.frame = frame;
    [button setBackgroundImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];   
    [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
    // in case the parent view draws with a custom color or gradient, use a transparent color
    button.backgroundColor = [UIColor clearColor];
    button.showsTouchWhenHighlighted = YES;
    button.tag = aTag;
    return [button autorelease];
}
于 2013-01-16T11:53:49.987 に答える
1

さまざまなビューにナビゲーションバーを設定できます

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"login.png"] forBarMetrics:UIBarMetricsDefault];  

ナビゲーションバーのボタンを取得すると、私の答えに従うことができます

NavBar でプログラムによって画像を設定する方法は?

于 2013-01-16T12:02:36.807 に答える
0

ナビゲーション バーの背景色を設定するか、Appearance メソッドを使用します。viewWillAppear のナビゲーション バーの画像を変更したい場所

于 2013-01-18T09:43:15.813 に答える