SearchBarでのインクリメンタルサーチ時にNavigationBarのBack Buttonで戻って再度検索をすると正常に動かない件
環境
状況
- SearchBarを使ってTableViewControllerで、インクリメンタルサーチを実装
- 検索ワードを入力
- xボタンやcancelボタンではなく、戻るボタンで離脱
- 再度検索をしようとしたら、正常に動かなかった
検索画面の初期状況
検索バーにFirstResponderが移ると
データが空になります
インクリメンタルサーチ
一文字入れる毎に結果が変わっていきます
しかしここで、
xボタンやキャンセルボタンではなく、NavigationItemのBack Buttonで離脱すると、再度検索しようとしたら以下の様になりました。
正常に検索ができず、検索の初期画面から変化しません。 cancelボタンも表示されません。
対応
- viewWillDisappearにて、UISearchControllerをactive = false にします
var resultSearchController = UISearchController() override func viewWillDisappear(animated: Bool) { self.resultSearchController.active = false }
これで正常に動くようになりました。