Swift version: 5.0
You can embed a search controller right into any view controller that’s inside a
UINavigationController using code like this:
navigationItem.searchController = yourSearchController
However, when your view controller happens to be a scrolling one – most commonly a table view or a collection view – the search bar will automatically hide itself along with your content.
If this isn’t what you want - if you want the search bar to be visible regardless of the user’s scroll position - then you need to set your navigation item’s
hidesSearchBarWhenScrolling property to false, like this:
navigationItem.hidesSearchBarWhenScrolling = false
Available from iOS 11.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.