2011-11-15 6 views
2

XCode 4.2にアップグレードしました。私のアプリがiOS 4.0シミュレータで実行されると、プッシュされた複数のビューにナビゲーションバーが表示されます。アプリがiOS 5.0シミュレータとiOS 5.0搭載のデバイスで実行されると、ナビゲーションバーがすべてのビューに表示され、テーブルビューがその領域を埋めるようにプッシュアップされます。ナビゲーションコントローラ次のコード使用して作成された:navigationController iOS 5のバーバックボタンがありません

navigationController = [[UINavigationController alloc] initWithRootViewController:swViewController]; 

およびビューがそうようnavigationControllerにプッシュされる:

UIBarButtonItem *backButtonItem  = [[[UIBarButtonItem alloc] initWithTitle:@"NextLevel" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease] ; 
    self.navigationItem.backBarButtonItem = backButtonItem; 
    [self.navigationController pushViewController:self.listController animated:YES]; 

navigationControllerがウィンドウに追加され介し:

[window addSubview:self.navigationController.view]; 

アップデート1 - iOS 5のナビゲーションバーのデフォルトが隠されているように見えたので、追加しました。

[[self navigationController] setNavigationBarHidden:NO animated:YES]; 

ナビゲーションバーは表示されますが、backButtonItemで指定された戻るボタンは表示されません。

アップデート2 - navigationControllerのタイトルも設定しましたが、それも表示されません。

iOS 5.0の上部にナビゲーションバーが表示されるようなものがありますか?

答えて

1

私はそれを理解しました。私はこのコードをコメントアウトしたら、その後、バックボタンが現れた。このSOリンク

hide_nav_bar

- (void) viewWillAppear:(BOOL)animated 
{ 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
    [super viewWillAppear:animated]; 
} 

あたりなどをバックアップポップとき、私は、ナビゲーションバーを非表示にするには、次のコードを持っていました。

1

何が問題なのかは100%明らかではありません。このような場合(古いiOSで動作し、アップグレードが途切れる)、あなたはおそらく何か間違ったことをしていましたが、古いOSで動作したばかりです。

古いスタイルのaddSubview:ではなく、UIWindowのrootViewControllerプロパティを使用することをお勧めします。つまり、

window.rootViewController = self.navigationController; 

これが役立つかどうかを確認してください。

+0

これは、iOS 5で壊れた理由は以前は間違っていたということでした。アップグレードのたびに、Appleはエラーチェックを改善しようとします。上記のコードを追加しましたが、修正されませんでした。 –

関連する問題