Итак, у меня есть следующие настройки.
InitialViewController (VC) -> NavigationController -> ViewController1 (VC1) содержит UISearchController, отображает результаты в новом контроллере ViewController2 (VC2) -> Segue от щелчка ячейкина VC2 -> Запустить ViewController3 (VC3)
Мне нужно закрыть VC3 и вернуться к VC1.Однако ни VC2, ни VC3 не являются частью стека навигационных контроллеров.Я в значительной степени перепробовал все предложенные альтернативы, но безрезультатно.
Как передать контроллер UISearch и результаты в стек навигации?
Я создаю экземпляр моего UISearchController в VC1 следующим образом:
searchController = UISearchController(searchResultsController:
searchResultsController)
searchController!.searchResultsUpdater = searchResultsController
searchController?.delegate = self
searchController!.obscuresBackgroundDuringPresentation = true
searchController!.searchBar.placeholder = "Search stocks"
searchController?.hidesNavigationBarDuringPresentation = false
definesPresentationContext = true
searchController!.searchBar.delegate = searchResultsController
//navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
navigationItem.titleView = searchController?.searchBar
definesPresentationContext = true
И мой searchResultsController:
extension WatchListTableViewController: UISearchResultsUpdating, UISearchBarDelegate {
// MARK: - UISearchResultsUpdating Delegate
func updateSearchResults(for searchController: UISearchController) {
// TODO
filterContentForSearchText(searchController.searchBar.text!)
}
}
class WatchListTableViewController: UITableViewController {
var stocks = [String]()
var filteredStocks = [String]()
override func viewDidLoad() {
super.viewDidLoad()
stocks = ["Apple", "Google", "Microsoft", "Tesla"]
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
}