1

別の良いアドバイスが必要だと思います。今までのところ、私のソリューションはうまく機能しているように見えましたが、今は...

OK、事実:

  1. 私は普通のUIViewControllerを持っています
  2. UINavigationBarの上、その後ろにUISearchBarがあり、最初は非表示になっています
  3. 下部にあるUIToolBar
  4. 私のメインビューコントローラーは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つのように、別のデリゲートメソッドを提供する必要がありますか?

どんなポインタでも歓迎します。

4

1 に答える 1

0

私の推測では、searchBar の割り当てが解除されており、あなたはそれを知りません。おそらく、View Controller の割り当てが解除されているか、View 階層が原因である可能性があります。解放を中断してみて、いつ発生するかを確認してください。

于 2009-12-03T05:52:12.810 に答える