In my project, If a controller (containing UISearchController) is pushed second time on to the navigation stack, Search bar can\'t seem to get focus. The following GIF recoding
Try this
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.definesPresentationContext = YES;
}
- (void)viewDidDisappear:(BOOL)animated {
self.definesPresentationContext = NO;
[super viewDidDisappear:animated];
}
it working fine for me, but not sure is it good solution or not?
You need to set your UISearchControllerDelegate
class SearchController: UITableViewController, UISearchControllerDelegate, UISearchBarDelegate {
override func viewDidLoad() {
super.viewDidLoad()
searchController = UISearchController(searchResultsController: nil)
searchController.delegate = self
searchController.searchBar.delegate = self
self.definesPresentationContext = false
}
in the storyboard also need to change the segue from Show Push, to Show Replace
or use extensions however the cool kids are doing it now.