2012-04-24 3 views
0

У меня есть динамический UITableView. В первой строке первого раздела у меня есть segmentedControll (все с ячейками прототипов, подклассы и делегирование в UITableViewController). При таком сегментированном управлении я хочу, чтобы в том же разделе появилась дополнительная строка. Что я делаю, чтобы иметь обусловливающие numberOfRowsInSection, а затем, когда SegmentedControl сливают это вызывает следующее:UISegmented управление перезагружается на UITableView

if (cellPath.section==0 && cellPath.row==1) { 

     if (segmentedCell.segmentControl.selectedSegmentIndex==0) { 

      reverse=NO; 

      [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic]; 

     }else if (segmentedCell.segmentControl.selectedSegmentIndex==1){ 

      reverse=YES; 

      [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic]; 

} 

} 

это как-то работает, но проблема в том, что SegmentedControl также получает перезагружается в исходном состоянии и вы может нарушить остальное.

Любая идея о том, как это сделать? Я также попробовал reloadRowsAtIndex ..., но не работает (я положил начало/конец).

Заранее благодарен!

ответ

0

При перезагрузке таблицы ячейка «повторно используется». Поэтому каждая ячейка не будет сохранять состояние, но полагается на другой класс (делегат) для хранения состояния. Поэтому, если вы хотите сохранить состояние в сегментированном элементе управления, сохраните его значение в делегате для представления в таблице, а затем убедитесь, что вы устанавливаете это значение для своего сегментированного элемента управления в вашем cellForRowAtIndexPath каждый раз для его указательного пути.

+0

Да, это все. Большое спасибо! – Marcal

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