まず以下のようにSearchControllerを実装しました。
Swift
1searchController.searchResultsUpdater = self 2searchController.searchBar.delegate = self 3searchController.dimsBackgroundDuringPresentation = false 4searchController.searchBar.searchBarStyle = UISearchBarStyle.Prominent 5searchController.searchBar.sizeToFit() 6tableView.tableHeaderView = searchController.searchBar 7
そしてSearchBarに文字を入力して検索結果が画面に表示されたとします。そして検索結果が表示されているTableViewのセルをタップすると詳細の画面にPush遷移するようにしているのですが、遷移しても画面の上にずっとSearchBarが表示されています。SearchBarの右横のキャンセルボタンを押すと、ようやくSearchBarが消えます。これは正しい動作ではないですよね?
例えばiPhoneにプリインストールされている連絡先アプリで同様のことを行うと画面遷移した時にはSearchBarは消えています。そして元の画面に戻るとSearchBarに文字が入力され、検索結果が表示された状態の画面が表示されます。このような動作を行うには上記のコード以外に何をしなければならないのでしょうか?画面遷移をする前にsearchController.active = falseとしたのですが、こうするとSearchBarが消えるアニメーションが見えてスムーズじゃないですし、検索結果が表示されていた画面に戻った時にSearchBarに入力されていた文字や検索結果が消えてしまいます。
どなたか解決策がわかる方がいれば教えていただきたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/06 02:09