0

私はこの質問をしましたが、正しくありませんでした。NavigationVCコントローラーを作成しました:

#import <UIKit/UIKit.h>
@interface NavigationVC : UINavigationController

- (void)setTitleText:(NSString *)title calendar:(BOOL)calendar moveToLeft:(BOOL)left;
 //this method for create title of navigationitem that I then use in all ViewControllers

@end

NavigationVC.mには次のものがあります。

@implementation NavigationVC

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
  self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
  if (self) {
    // Custom initialization
}
  return self;
}

- (void)awakeFromNib
{
   [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"backGroundLayer.png"] forBarMetrics:UIBarMetricsDefault];
}

- (void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];

}

- (void)viewDidLoad
{
  [super viewDidLoad];

}

画像backGoundLayer.pngの解像度は320x44で、backGround@2x.pngの解像度は640x88です。

UIViewControllerから継承したviewcontrollerBaseVCと、BaseVCから継承した他のviewcontrollerを作成しました。

ストーリーボードでペン先を作成しました

ここに画像の説明を入力してください

そして次の私の問題:

ここに画像の説明を入力してください

最初の背景画像はstatusBarの下に表示されますが、他の背景画像がstatusBarの下に表示されていることがわかります。ストーリーボードでstatusBarを黒に変更しようとしましたが、役に立ちませんでした。writeメソッドを試してみます

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

 In viewDidLoad or viewWillAppear in NavigationVC, but it not helped too.

そして私は2番目の問題を抱えています。ビューコントローラでボタンを作成し、それがタッチされたら次のビューを押します。プログラムで最初のビューと2番目のビューにタイトルを追加します。ボタンをタッチすると、2番目のビューのタイトルが表示されます(このタイトルは必要以上に上にありますが、背景はstatusBarなしで表示されると思います)。次に、2番目のビューのタイトルが消え、空のナビゲーションバーが表示されます。backButtonをクリックして最初のビューに移動すると、最初のビューに2番目のビューのnavigationBarタイトルが表示されます。何が問題なの?

4

2 に答える 2

1

ステータスバーの後ろに画像はありません。iOS6では、ステータスがナビゲーションバーの色を引き継ぎます。

のステータスバースタイルを変更すると、黒のinfo.plistままOpaque black styleになります。

于 2013-03-13T08:11:09.033 に答える
1

これはiOS6の機能であり、デフォルトではステータスバーがナビゲーションバーの色になります。ターゲットの概要ページでステータスバーのスタイルを変更することで、この動作を変更できます。

于 2013-03-13T08:11:19.543 に答える