iOS 7 の新しい uisearchbar に問題があります。
私のアプリでは、tableHeaderView に検索バーがある tableview があります。
手作り (プログラムで追加) - ストーリーボードの tableviewcontroller、メソッド viewDidLoad で、UISearchBar から継承したカスタム検索バーで searchDisplayController を追加します。
すべてがナビゲーションコントローラーで行われます。
私のアプリのロジックでは、ある時点で、dismissViewController を送信するこのナビゲーション コントローラーを解放します。
iOS 6では完璧に動作します。
しかし、ios 7 では、ナビゲーション コントローラーを解放しようとするとクラッシュします。
ログには、次の興味深い行があります。
viewDidLoad の最後にこれを追加します:
for (UIView *view in self.view.subviews) {
NSLog(@"%@ %p", [view.class description], view);
}
iOS 6では、これしかありません:
2013-09-19 12:40:40.553 myApp[4182:c07] KRSearchBar 0x988bdd0
iOS 7 の場合:
2013-09-19 13:08:47.808 myApp[4690:a0b] UIView 0xa265310
2013-09-19 13:08:47.809 myApp[4690:a0b] UITableViewWrapperView 0xa25b4d0
2013-09-19 13:08:47.810 myApp[4690:a0b] KRSearchBar 0xa2591b0
そして、ナビコントローラーを離した後、私は持っています
2013-09-19 13:09:32.419 myApp[4690:a0b] *** -[UIView release]: message sent to deallocated instance 0xa265310
UIView とは何ですか? それはどこから来て、どのように対処するのですか?