LoginSignup
1
3

More than 1 year has passed since last update.

【Swift】「検索履歴」を実装する方法

Last updated at Posted at 2021-07-03

しゅんやと申します。

シンプルなタイトルですが、意外と投稿してる人少ないんじゃね?と思って投稿してみることにしました(多分ぼくの検索力が弱いだけ)

ではまあ、軽くやっていきしょう!

①ではまず、これを準備しましょう

Qiita1.jpeg

↑これです

そう、「SearchBar」です。

②Viewの設定

んでまあ、その下にでも良いので「TableView」を設置してください。

それから、検索履歴を表示するためのUILabelもセル上に設置してください。(タグもつけておいてください)
Qiita投稿画像2.png
↑こんな感じ


③では、コードへGo!

ではコードに移りましょう

まずこれらを書いてください(子クラス名はSearchViewControllerにしてます)⏬

Qiita投稿画像3.png

SearchBarとTableViewはStoryBoardで繋いでます。
また、前者のデリゲート(delegate)と後者のデータソース(dataSource)も忘れずに記述してください。

検索履歴達がどんどん入ってくる配列も宣言しておきましょう。

次に、SearchBarについての設定をしていきます。⏬

Qiita投稿画像4.png
(わかりやすいようにextensionに書いてます)※extensionは「拡張」という意味です。

まあやってることは単純で、検索されたら反映して、キャンセルされたら戻るという感じです。

注目して欲しい事といえば、①検索された文を、グローバル変数として宣言したString型の配列にappend(追加)しているところ、②検索が行われた時にもTableViewをリロードしているところです。(ViewWillAppearでもリロードしている)

そして最後に、TableViewの設定です。⏬
Qiita投稿画像5.png

セルの数は、「検索履歴の数」です。
あと、コードにも書いてますが、セルにIDを登録するのを忘れないでください。(タグも忘れずに)

セルの高さは自由に設定してください。

はい、ということでお疲れ様でした。一応これだけで実装できます。

あ、「セルを消したい!」という人は、この二つのメソッドも追加してください⏬
Qiita投稿画像6.png

④最後に

ここまで見ていただきありがとうございます。

Swift独学歴1年にも満たない駆け出し小鹿プログラマー(?)なので、こんな簡単な方法でしか実装できないですが、どうか温かい目でみてください🥺

この記事を見て気づいた人も多いと思いますが、やり方がまだ全然分かってないが故に、画像の文章をコピー出来ないようになってます、、、。本当にすみませんでした、、、。やり方が分かり次第変更します、、、🙏

あ、「UserDefaultsとかFirebaseに保存する方法とかも知りたい!」という方がもしいれば、またその方法を追記していきたいと思います!!

では!

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3