Unwanted UITableView reload animation when navigating from iOS 11 search controller

If you just hide the searchBar before pushing a new viewController then it may fix your problem.

You need to create a global variable for searchBarCancelButton and find the cancel button from its subviews when you search something

let buttons = searchController.searchBar.subviews.first?.subviews.filter { (view) -> Bool in
            return NSStringFromClass(view.classForCoder) == "UINavigationButton"
        } as? [UIButton]
        searchBarCancelButton = buttons?.first

then you can manually cancel it.

self.searchBarCancelButton?.sendActions(for: .touchUpInside)