0

迷惑な問題があります。UISplitViewControllerのマスター(左)ペインにUITableViewを備えたUINavigationControllerがあります。私が通常の操作をするとき、物事はナビゲーションコントローラーにうまくプッシュします。

代替テキストhttp://files.droplr.com/files/8851942/WDO5y.working.jpg

ただし、検索してプッシュすると、ナビゲーションバーに必要なスペースが考慮されていないように見えます。新しいコントローラーを一番上に押してから、ナビゲーションバーを付けてコンテンツを重ねます!

代替テキストhttp://files.droplr.com/files/8851942/WDRem.search.jpg

ポートレート(ポップアップメニュー)およびiPhoneで実行する場合は、正常に機能することを追加する必要があります。これはUISplitViewControllerのバグですか?

4

2 に答える 2

1

OK、あなたの答えがあります-[リンクされた質問にもこの答えを投稿しました]-

これが私のために働いたステップです[いくつかの擬似コードを含みます]:

1)検索しているので、間違いなくすでにオーバーライドしていますShouldReloadForSearch-したがって、を保存/保存するコードを追加するだけforSeachStringです。

2)これはアプリによってかなり異なる場合がありますが、この手順の要点は、検索結果が読み込まれない場合は、保存されている検索文字列[nullに設定]をクリアする必要があるということです。UITableViewSourceでこれを行いました。2つのコンストラクターがあります。1つは完全なデータセット用で、もう1つはフィルター処理された[検索結果]データセット用です。そのため、完全なデータセットコンストラクターでnullに設定しました。ええ、あなたは間違いなく別の方法でそれを行うことができますが、それは私がそれをした方法です。

3)次に、元の「回答」の状態に従って実行し、SetActive-を呼び出します[self.searchDisplayController setActive:NO];。彼らは、ViewDidAppearをオーバーライドしてそれを行うことを提唱しました。私はそれをしませんでした...オーバーライドで次のUIViewControllerをプッシュした直後にこれを行いましたRowSelected

4)最後に、UISearchDisplayControllerが接続されているUIViewController内で、保存されている検索文字列を確認し、存在する場合は次の手順を実行しますsetActive:YES。保存した検索文字列値へのテキスト。私はこれをViewWillAppearオーバーライドで行いました。

簡単に言えば...これは私にとってはうまくいき、検索結果を維持します。手順4でsearchBarテキストを設定することが重要です...これにより、フィルターが効果的に持続します。

これが誰かに役立つことを願っています

于 2010-09-15T19:27:27.660 に答える
1

1か月以上前に質問されたようですが、解決策が見つかったかどうかはわかりませんが、同じ問題が発生しており、Googleを検索するとこのスレッドが表示され続けます。私はまだ私の出荷を待っているので、デバイスでこのように発生するかどうかはテストしていませんが、シミュレーターではこのように発生しました。検索バーを備えたUITableViewControllerサブクラスであるルートビューがあります。ナビゲーションスタックに何かをプッシュすると、ビューはナビゲーションバーの上または後ろ、または何らかの形で正しい位置になりますが、ナビゲーションバーはタッチできません。

[self.searchDisplayController setActive:NO];viewDidDisappearまたはviewWillDisappearを上書きしてビューが消えるときに、検索ディスプレイコントローラーをアクティブにしないように設定することにようやく気づきました。これで、すべてが正しいフレーム/境界を取得しているように見えますが、ポップバックすると検索表示が失われます。必要に応じて、検索表示の状態を離れるときに保存し、戻ったときに戻すことができると思います。あなたが解決策を見つけたら、別の解決策を私に知らせてください。

于 2010-06-20T21:53:11.760 に答える