In the previous part we’ve setup our project and the relevant graphical bits to make the app display the table view. Now it’s time to implement the UISearchController object that will be at the heart of letting users sift through our search results. We’ll do that in this part.
Check out the first part here, as well as a link to my demo project.
Creating searchable table views was always a bit of a nightmare before iOS 8. Until then we had to use a UISearchDisplayController, and sometimes a separate UISearchBar object that needed to be scrolled in and out of vision to make it look elegant. We also had to conform to several protocols. All this was cumbersome and error prone.
Since iOS 8 we can use something much easier called the UISearchController. Sadly the Apple documentation isn’t exactly forthcoming on how to use this thing. Let me show you how to do it in this article.
I’m using Objective-C, Xcode 7, a bit of KVO magic and a simple array for dummy values (no Core Data). If you prefer video instructions, check out my 4 part screencast on building this project over here.
In this 4 part course I’ll show you how to build a searchable UITableView using iOS 9.1 and Xcode 7.1.
- Part 1 will talk you through how to build a UITableView with dummy data
- In Part 2 I’ll show you how to use a UISearchController to display a second table view
- In Part 3 we’ll discuss how to filter results using an NSPredicate
- And in Part 4 we’ll see how to communicate those search results to the second table view via KVO.
The whole course is about 50 minutes long, and I’ll explain details step by step. All code is Objective-C, and the the full project I’m building is available on GitHub.
Sounds interesting? Join me now and I’ll see you on the other side 😉
Here’s the code I’ve built during the screencast. As promised, I’ve also implemented the UISearchControllerDelegate methods – just in case you need them:
The Apple Class References aside, I’ve also put together written instructions on how to create this project in my next article. If you prefer written instructions, go check it out here – it covers the same steps as these videos 🙂