【Swift】SearchBarでTableViewを検索する方法

こんにちは、のっくんです。

iPhoneアプリの開発で学んだことをアウトプットしていきます。

TableViewを検索する方法について説明していきたいと思います。

出来上がったイメージは以下の通り。

記事を集めるアプリですが、自分の好きな言葉で検索するような機能を実装してみました。

SearchBarを使って文字列を検索しています。

StoryBoard

StoryBoardは以下の通り。

Tableの中に検索バーを配置します。

ViewController

次にViewVontrollerを実装していきます。

UISearchBarDelegateを継承します。

記事やリンクをItemクラスで管理していますが、オブジェクト配列を2つ(itemsとcurrentItems)用意します。

currentItemsには検索された記事のオブジェクト、itemsには全記事のオブジェクトを格納するようにします。

searchBarの中身ですが、

  1. 入力された文字列が空であれば、itemsを表示する
  2. 入力された文字列が空でなければ、文字列が含まれる記事のオブジェクトを検索する

最後にリロードをしてテーブルを更新します。

TableView

tableViewのコードも更新します。

itemsではなくcurrentItemsを表示するように変更します。

参考

この記事で紹介したコードは以下のビデオを参考にしています。