2013-09-19 5 views
0

Я пытаюсь использовать панель UISearch в моем табличном представлении UITableview. Эта функциональность поиска работала без проблем на iOS 6, но, поскольку она построена против 7.0 SDK, я получаю сбой при нажатии на панель поиска после возвращения из другого представления. При первом просмотре таблицы поиска TableView панель поиска работает так, как ожидалось. Но как только я развернусь в подробном представлении, панель поиска выдает исключение исключающего доступа, когда я нажимаю его. Этот плохой доступ не регистрируется с помощью NSZombies в моей схеме. Вот код для настройки представления заголовка:Плохой доступ с UISearchBar в tableHeaderView iOS 7

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; 
    self.searchController = [[UISearchDisplayController alloc] 
          initWithSearchBar:self.searchBar contentsController:self]; 
    self.searchController.delegate = self; 
    self.searchController.searchResultsDataSource = self; 
    self.searchController.searchResultsDelegate = self; 

    self.tableView.tableHeaderView = self.searchBar; 

Свойства self.searchBar и self.searchController оба объявлены как сильные ссылки. Предупреждения памяти не принимаются нигде. Что-то изменилось с помощью UISearchBar или tableHeaderView в iOS 7? Также может быть примечательно, что я применяю прокси-сервер внешнего вида к UISearchBar, но он выглядит и работает правильно при первой загрузке.

ответ

0

Оказывается, аварии было связано с использованием sectionIndexTitlesForTableView вместе с UISearchDisplayController (см this question). Это похоже на ошибку в iOS 7 SDK. Вместо этого я использую CMIndexBar в качестве замены третьей стороной. Работает так же, как и индексы родного раздела, никогда не падает, легко настраивается.

0

У меня возникли проблемы с авариями UISearchBar в iOS7, пока я не начал устанавливать свой UISearchDisplayController как неактивный, прежде чем UITableViewController будет уволен. Добавление следующие работал для меня, но я не знаю, если наши проблемы связаны:

[_mySearchDisplayController setActive:NO]; 
Смежные вопросы