0

たくさんのアイテムを一覧表示するメイン ビュー コントローラーがあり、アイテムの 1 つをタップすると、次のビューに移動します。ただし、次のビューでは、ナビゲーション バーをそこに表示したくありません。最初のビューにのみ表示したいのです (ナビゲーション バーには iBooksのような UIToolBar を使用しています)。

これを達成するにはどうすればよいですか?ナビゲーション コントローラーからメイン ビュー コントローラーを完全に削除すると (埋め込みを解除して効果的に)、ナビゲーション バーを選択的に実装できますが、このソリューションではセグエが許可されないため、良くありません。

私の他の解決策は、2 番目のビューを呼び出すことでしたself.navigationController.navigationBarHidden = YES;viewDidAppear、これにより、ストーリーボードに追加した UIToolBar が、まだ非表示になっていないナビゲーション バーの下に押し込まれ、非表示になると消えて、 UIToolBar が「落下」します。これは、ユーザーにとってかなり大きな影響です。

この効果を得るための最善の方法は何でしょうか?

4

1 に答える 1

1

これを行う最良の方法は次のとおりです。UINavigationControllerviewWillAppear:の最初の (rootViewController) で、次のように設定します。

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

そしてあなたの中viewWillDisappearで、あなたは反対です:

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

この方法は、ユーザーに「醜い」ことが起こることなく機能するはずです。

于 2013-04-28T22:18:29.907 に答える