2

これは、以前の未解決の投稿のフォローアップです。テーブルビューにnavcontroller、tableviewコントローラー、および検索バーがあります。これはすべてストーリーボードに組み込まれています。次に、セルが選択されたときにプログラムで別のビューコントローラーを作成します。この最後のビューにナビゲーションバーを表示したくないので、viewWillDisappearで呼び出します

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

メインのtableViewでセルを選択すると、これはうまく機能します。ただし、サーチバーで検索してデータを絞り込んだ後にセルを選択すると、viewWillDisappear で setNavigationBarHidden を呼び出しても、後続のビューにナビゲーションバーが表示されます。

viewDidDisappear でこの呼び出しを繰り返してみましたが、ナビゲーション バーは一時的に表示されますが、次のビューから消えます。

どうやら NavigationBarHidden プロパティをリセットする viewWilldisappear と viewDiddisappear の呼び出しの間で何が起こるか知りたいですか?

4

1 に答える 1

1

これが私が見つけたものです。検索バーがビューを離れると、ナビゲーションバーがビューに再び送信されるため、NavigationBarHiddenプロパティは明らかにリセットされます。何が起こっているのか正確にはわかりませんが、viewWillDisappearのこのコード行で問題が解決します。

 self.searchDisplayController.active=NO;

に続く:

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

もちろん、ここで何が起こっているのかを本当に理解している人から聞いてみたいです。

于 2012-05-22T10:52:57.360 に答える