Show keyboard automatically when UISearchController is loaded

BecomeFirstResponder is the way to go, but you should do it not in viewDidLoad. Look at following discussion for details - Cannot set searchBar as firstResponder


I also tried the suggestions listed in the link mentioned by Nikita Leonov. I needed to add make the class a UISearchControllerDelegate & UISearchBarDelegate and then it worked. I don't u

class PickAddressViewController: UITableViewController, UISearchControllerDelegate, UISearchBarDelegate, UISearchResultsUpdating {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.mySearchController = ({
            controller.searchBar.delegate = self
        })()

        self.mySearchController.active = true
        self.mySearchController.delegate = self
    }

    func didPresentSearchController(searchController: UISearchController) {
        self.mySearchController.searchBar.becomeFirstResponder()
    }
    …
}