2015-02-03 4 views
0

Я строю свое первое приложение, которое застряло. Заголовки моих разделов отображаются неправильно.Заголовки разделов, испорченные при использовании панели поиска + подробный вид

  • У меня есть вид главного стола с панелью поиска для фильтрации моих товаров.
  • У меня есть разделы в моем представлении таблицы
  • У меня есть segue для подробного просмотра, чтобы показать более подробную информацию о постукиваемом предмете.

Все работает нормально. Я могу фильтровать мои объекты в главном режиме, используя панель поиска. Разделы по-прежнему корректно отображаются в результатах поиска. Я также могу использовать один из элементов в результатах отфильтрованного поиска. Появится подробное описание TableViewView. Хорошо.

Когда я возвращаюсь к главному табличному представлению из подробного представления, отфильтрованные элементы отображаются под их разделами. НО - названия исходного раздела ТАКЖЕ появляются (перекрываются), как если бы все (нефильтрованные) элементы были перечислены.

Я обнаружил, что прямо перед отобразить детали Просмотр таблицы в Master View в функции

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String { 
    if tableView == self.searchDisplayController!.searchResultsTableView { 
     println("COOL") 
    } else { 
     println("Damn, it doesn't recognize that its filtered.") 
    } 

    ... 
} 

триггеры и не считает, что его «Tableview» больше не фильтруется.

Приложение работает отлично, если я не фильтрую и не нажимаю на предметы, а затем возвращаюсь к главному виду.

Есть ли у кого-нибудь идеи, что я могу делать неправильно?

Спасибо, Daniel

ответ

0

Это решает проблему. «Self.tableView.reloadData()» вызывало такое поведение:

override func viewWillAppear(animated: Bool) { 
    // DO NOT UNCOMMENT THIS!!! IT BREAKS THE SEARCHING - WHEN I SEARCH AND 
    // THEN CLICK ON AN ITEM AND GO TO THE DETAIL VIEW CONTROLLER AND THEN GO 
    // BACK TO THE MAIN VIEW CONTROLLER THEN THE ORIGINAL SECTION HEADERS 
    // APPEAR ON TOP OF THE RESULTS VIEW. 
    // self.tableView.reloadData() 

    super.viewWillAppear(animated) 
} 
Смежные вопросы