前提
現在、TeratailAPIを利用して、TableViewに質問を一覧形式で表示させるアプリを作成しています。
SearchBarを設置して、質問タイトル名を検索できる機能を実装しており、
以下の画像で示しております×ボタンを押すことで、検索している状態から元の一覧表示にしたいと考えています。
実現したい動き
理想の動きとしては、以下の画像のようになっております。
①質問一覧が表示
②SearchBarにキーワードを入力し、検索ボタンを押すと、該当のタイトルが検索される
③SearchBarの×ボタンを押すと、元の質問一覧が表示される
!
発生している問題・該当のソースコード
上記を実装するために、以下のコードを記載いたしました。
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) { print("cancel")//コンソールに出力されず getTeratailJson.fetchQuestion { (titles,created) in self.titleArray = titles//質問のタイトル名を取得 self.createdArray = created//質問の作成日時を取得 DispatchQueue.main.async { self.tableView.reloadData()//TableViewに質問一覧を表示 } } }
しかし、実際には以下のような動きとなってしまっています。
①質問一覧が表示
②SearchBarにキーワードを入力し、検索ボタンを押すと、該当のタイトルが検索される
③SearchBarの×ボタンを押しても、表示が変わらず
そもそもの問題として、上記のコードのうち、
print("cancel")//コンソールに出力されず
こちらが出力されていない時点で、×ボタンを押す=searchBarCancelButtonClicked()ではないとは
思っているのですが、その場合の別のメソッドがあるのかどうかを知りたいです。
長々と申し訳ないのですが、ご教示いただければ幸いです。
補足情報(FW/ツールのバージョンなど)
Xcode11
Swift5
です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/16 08:11