In iOS12 the navigationItem.searchController should show when push down and hide on push up. bug in ios13, it can show, but never hide, unless your list is longer than the screen, below is my code, it work fine in ios12:
_searchController.searchResultsUpdater = self;
_searchController.obscuresBackgroundDuringPresentation = NO;
_searchController.searchBar.placeholder = SP_LOCSTR(@"Search");
_searchController.searchBar.tintColor = [UIColor whiteColor];
_searchController.dimsBackgroundDuringPresentation = NO;
_searchController.hidesNavigationBarDuringPresentation = YES;
_searchController.delegate = self;
self.navigationItem.searchController = _searchController;
self.navigationItem.hidesSearchBarWhenScrolling = YES;