Контроллер поиска не дал результатов (пустая страница) - PullRequest
0 голосов
/ 23 июня 2018

Базовая таблица правильно показывает результаты - она ​​работает правильно.

У меня проблема с таблицей, которая показывает результаты поиска, всегда возвращает белую страницу. (нет результатов) Проблема может быть две таблицы в одном контроллере?

Что я делаю не так?

class SearchMagazineViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchResultsUpdating {

    @IBOutlet var tableView: UITableView!
    var resultsController: UITableViewController!
    var searchController: UISearchController!
    var searchMagazines: [Magazine]?
    var latestPub = [Magazine]()

    func updateSearchResults(for searchController: UISearchController) {
        let searchText = searchController.searchBar.text!
        if searchText.count > 0 {
            self.searchMagazines = CoreDataHandler.searchMagazine(query: searchText, scope: 0)
        }
        self.resultsController.tableView.reloadData()
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        latestPub = CoreDataHandler.latestMagazines() ?? [Magazine]()

        resultsController = UITableViewController(style: .plain)
        resultsController.tableView.register(UINib(nibName: "searchCell", bundle: nil), forCellReuseIdentifier: "searchCell")
        resultsController.tableView.dataSource = self
        resultsController.tableView.delegate = self

        searchController = UISearchController(searchResultsController: resultsController)
        searchController.delegate = self
        searchController.searchResultsUpdater = self
        searchController.hidesNavigationBarDuringPresentation = true

        navigationItem.searchController = searchController
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if tableView == self.resultsController {
            return searchMagazines?.count ?? 0
        }else{
            return latestPub.count
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if tableView == self.resultsController {
            let cell = tableView.dequeueReusableCell(withIdentifier: "searchCell", for: indexPath) as! SearchCell
            let item = searchMagazines![indexPath.row]
            cell.cat.text = TitleReturn(id: item.cat)
            return cell
        }else{
            guard let cell = tableView.dequeueReusableCell(withIdentifier: "SearchCell") as? SearchTableViewCell else { return UITableViewCell() }
            cell.title.text = latestPub[indexPath.row].title
            return cell
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...