11

画像を背景画面全体として配置できるように、ナビゲーションコントローラーのメインナビゲーションバーまたは最初のナビゲーションバーのみを非表示/削除/無効にする方法を探していましたが、解決策が見つかりませんでした。

メインナビゲーションコントローラーのviewdidLoadでタイトルビューを非表示にしようとしましたが、機能しませんでした。NavigationBarHiddenを使用してみましたが、コントローラーの次のスタックのナビゲーションバー全体が非表示になります。

だから、私はこれを行う方法がわかりません。例を挙げると、このアプリのようなものが欲しいです-マスターズゴルフトーナメント-http://appshopper.com/sports/the-masters-golf-tournament

画面1を見ると、上部にナビゲーションバーはありませんが、オプションをタッチすると、新しいView Controllerにプッシュされ、画面3,4および5のようにナビゲーションバーが表示されます。

誰かがこれで私を助けてくれることを願っています。どうもありがとう!

4

4 に答える 4

18

ほとんどのアプリケーションには、他のすべてのカスタム コントローラーを派生させるカスタム UIViewController クラスがあります。これらのいくつかでは、navigationBarInitiallyHidden他のクラスがオーバーライドできる基本クラスにようなメソッドを追加しました。デフォルトの結果は、アプリケーションの性質によって異なります。

ナビゲーション コントローラーのデリゲートでは、そのメソッドを実装するコントローラーが表示されている場合、デリゲートはそれに応じてナビゲーション コントローラーを表示または非表示にします。非表示または表示をアニメーション化するので、現在の状態を確認し、変更が必要ない場合は何もしません。

デリゲート メソッドでもっと簡単なことを行うことができます。表示されているコントローラーがルート コントローラーの場合はナビゲーション バーを非表示にし、非表示の場合は表示します。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
  if ( viewController == rootController ) {
    [navigationController setNavigationBarHidden:YES animated:animated];
  } else if ( [navigationController isNavigationBarHidden] ) {
    [navigationController setNavigationBarHidden:NO animated:animated];
  }
}
于 2010-07-31T04:48:50.930 に答える
12

ナビゲーションバーを非表示にすることができます: [self.navigationController setNavigationBarHidden:YES]; そして、ナビゲーションバーを再び表示したい場所 [self.navigationController setNavigationBarHidden:NO];

于 2012-07-30T05:35:22.143 に答える