2013-07-16 4 views
0

Я пытаюсь найти лучший способ приблизиться к этому. У меня есть UITableView, и внутри него может быть X количество секций. У меня также есть кнопка, которая создает popover с пользовательским UIPickerView, который отображает заголовки каждого раздела (я получил эти значения из массива, а не UITableView, так как я не мог понять, как это сделать).Отфильтровать все разделы UITableView в соответствии с заголовком раздела

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

Мне было интересно, можете ли вы пройти через все разделы, посмотреть на его название, и если он не соответствует выбранному, скрыть его? Возможно, стоит отметить, что никогда не будет более 10 разделов с несколькими ячейками каждый, поэтому я не знаю, лучше ли [table updateTable] или [table reloadData].

Моя попытка:

//Filter out the notes that should display 
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ 
//self.notesTable.dataSource = [myArrayOfDictionaries objectAtIndex:row]; 
//[self.notesTable reloadData]; this did not work 

for (int section = 0; section < [notesTable numberOfSections]; section++){ 
    //find sections that don't match pickerview selection 
    [email protected]("%@",[notesTable headerViewForSection:row);//return null? 

} 

} 

ответ

1

Можете ли вы опубликовать код для UITableView.delegate и UITableView.dataSource методы?

Вы хотите сделать что-то вроде этого:

  • Поддерживать @property указывающей на ALLDATA и поддерживать другую @property указывая на currentData
  • Пользователь выбирает раздел
  • Вы захватить sectionData из ALLDATA, установите этот разделData как ваш currentData
  • Звоните reloadData на tableView
  • Сделать sur е ваши delegate и dataSource методы ссылаться на currentData@property

Похоже, потому, что это не работает для вас выше, потому что вы устанавливаете UITableView «ы dataSource = currentData, что неправильно. DataSource всегда должен быть установлен в класс, который вы установили в соответствии с этим протоколом (возможно, ваш UIViewController).

Смежные вопросы