3

検索表示コントローラーによって処理される検索バーに入ると、ビューが上にスライドし、ナビゲーション バーが押し上げられます。これは簡単に実行できますが、検索結果をクリックして新しいビューがナビゲーション コントローラーのスタックにプッシュされると、ナビゲーション バーがビューと共に右側からスライドします。

これはどのように行われますか?ナビゲーション バーを非表示または表示に設定するだけで、すぐに表示されます。スタック内の 1 つのビュー コントローラーだけがどのように隠されているように見えるのかわかりません!

どうもありがとう、

マイケル

4

2 に答える 2

8

ナビゲーションバーの遷移をアニメーション化できます。詳細については、を参照-setNavigationBarHidden:animated:してください。

ビューコントローラごとにこれを行う必要がある場合は、ビューコントローラ-viewDidAppear:-viewWillDisappear:メソッドをオーバーライドするだけです。例:

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

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

上記は、このView Controllerがナビゲーションスタックの上に押されたときにナビゲーションバーを非表示にし、ViewControllerがポップオフされたときにナビゲーションバーを表示します。

いつでも呼び出すことができます-setNavigationBarHidden:animated:が、これら2つの方法は、多くのUI変更を適用するのに役立ちます。

于 2009-11-20T01:06:23.493 に答える
0
-(void)viewDidLayoutSubviews{
    [self.navigationController setNavigationBarHidden:NO animated:NO];
}

ナビゲーション バーは非表示になりません。

于 2013-10-15T06:41:17.570 に答える