別の良いアドバイスが必要だと思います。今までのところ、私のソリューションはうまく機能しているように見えましたが、今は...
OK、事実:
- 私は普通のUIViewControllerを持っています
- UINavigationBarの上、その後ろにUISearchBarがあり、最初は非表示になっています
- 下部にあるUIToolBar
- 私のメインビューコントローラーはUISearchBarDelegateをサポートしています
UIToolBarをオンにすると、UISearchBarの表示が切り替わります。
if (show) {
[searchBar setShowsCancelButton:TRUE animated:TRUE];
[navigationBar setHidden:TRUE];
[searchBar becomeFirstResponder];
}
else {
[navigationBar setHidden:FALSE];
[searchBar setShowsCancelButton:FALSE animated:TRUE];
}
searchIsVisible = !searchIsVisible;
周りにいくつかのアニメーションがありますが、たとえばこれを削除しました。これはうまく機能します。検索文字列を入力して、「searchBarSearchButtonClicked:」を使用してアクセスできます。「searchBarCancelButtonClicked:」にも反応できます。
私は以前に気づかなかったか、今起こっています-それ以上の通知なしに時々EXCBADACCESSをキャッチしています。「[searchBarbecomeFirstResponder];」と確信しています。私も検索行を利用してそれを誘発することができるので、ステートメントはその理由です。
残念ながら、その理由はわかりません。私が今持っている2つのように、別のデリゲートメソッドを提供する必要がありますか?
どんなポインタでも歓迎します。