1

私はuinavigationbarの上にカスタムイメージヘッダーを持っています。私はこのコードでこれを行う:非アクティブ状態から復帰すると、uinavigationbarが上に移動する

self.navController.view.frame = CGRectMake(0.0, 0.0, 320.0, 480.0); 
self.navController.navigationBar.frame = CGRectMake(0.0, 73.0, 320.0, 44.0); 

UIView *checkNav = [self.navController.view viewWithTag:9999]; 
if (checkNav == nil) { 
    UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"header-logo.jpg"]]; 
    imgView.tag = 9999; 
    [imgView setFrame:CGRectMake(0.0, 23.0, 320.0, 50.0)]; 
    [self.navController.view addSubview:imgView]; 
} 

これは素晴らしいです。しかし、アプリが非アクティブになって(メインのiPhoneのホームボタンを押すと)、アプリに戻ると、画面上部のデフォルトの位置に移動し、カスタムヘッダー画像の背後に隠れてしまいます。

私はapplicationDidBecomeActiveにコードを投げてみましたが、それは役に立ちません。どんな助けでも大歓迎です。

ありがとうございます!

+0

"投げた"コードをapplicationDidBecomeActiveに含めてください。 – jrturton

答えて

2

あなたはdocsにこのことについて警告しますか:唯一のいくつかの例外を除き

、あなたは直接のナビゲーションバーのオブジェクトを変更することはありません。

あなたが直接そのフレーム、境界、またはアルファ値を変更することはありませんしなければなりません

ナビゲーションバーのbarStyleまたは半透明のプロパティを変更することは許されていますが、繰り返すことで効果を得ることができる必要があります、と述べました上記のコードをapplicationDidBecomeActiveまたはapplicationWillEnterForegroundに追加します。そこからナビゲーションコントローラへのポインタがあると仮定します。ナビゲーションバーを隠して再表示する必要があるかもしれません(ハックのビットですが、ステータスバーと正しい位置に移動していないナビゲーションバーを隠したり表示したりする同様の問題があります)

+0

ああ!私はドキュメントでそれを逃した...それを指摘していただきありがとうございます。私は、navbarのためにアプリケーションが拒否される可能性はありません。だから、私は周りのどこに行くべきか、ナビゲーションバーを戻すために、周りのデザインを変更する予定です。ありがとう! – TheTC

0

viewWillAppearにコードを入れるのはどうですか?

+0

これは最初に "起動"したときには機能しませんが(確かに再試行しましたが)、アプリケーションが戻って、viewWillAppearで設定したビューに移動すると、それ自体が修正されます。ちょうど読み込み中です。それが意味をなさないならば。 =) – TheTC

+0

少し詰まっていますが、代わりにツールバーを使うことができますか? – Openside

関連する問題