Chapter 20
Search Bar and UISearchController
I knew that if I failed I wouldn't regret that, but I knew the one thing I might regret is not trying.
– Jeff Bezos
For most of the table-based apps, it is common to have a search bar at the top of the screen. How can you implement a search bar for data searching? In this chapter, we will add a search bar to the FoodPin app. With the search bar, we will enhance the app to let users search through the available restaurants.
Since the release of iOS 8, a new class called UISearchController
was introduced to replace the UISearchDisplayController
API that has been around since iOS 3. The UISearchController
API simplifies the way to create a search bar and manage search results. You're no longer limited to embed search in table view controller but can use it in any view controller like collection view controller. Even more, it offers developers the flexibility to influence the search bar animation through a custom animator object.
Starting from iOS 11, Apple further simplified the implementation of the search bar. It introduced a new searchController
property on navigationItem of the navigation bar. With just a few lines of code, you will be able to add a search bar to the navigation bar. You will understand what I mean in a while.
With UISearchController
, adding a search bar to your app is quite an easy task. Let's get started to implement a default search bar and see how we can filter the restaurant data.
To access the full version of the book, please get the full copy here. You will also be able to access the full source code of the project.