2015-08-26 2 views
0

У меня есть следующая проблема. У меня есть tableviewcontroller & viewcontroller. Tableviewcontroller имеет ячейку прототип, который имеет метку на нем, ViewController имеет две кнопки «ОК» & "„неудачные“Сохранение содержимого в ячейках прототипов

USECASE:. Пользователь нажимает на ячейку из Tableview и перенаправляется на ViewController Затем он нажимает на одну. из двух кнопок this => в тексте от метки из ячейки, которая была изменена на что-то.

Хорошо, пока эта работа просто прекрасна для любой ячейки, в которой я делаю это, но когда пользователь прокручивает табличный вид (вкл. снова просмотрите) ячейки снова используются, а метка снова установлена ​​в значение по умолчанию.

Что я должен сделать, чтобы сохранить их? Я совершенно новый для разработки, и у меня есть не знаю, в каком направлении я должен идти отсюда.

+0

Почему бы вам не начать показывать нам код, который у вас есть. – Tander

+0

Tad бит поздно на этом, но забыл, что я отправил этот вопрос извините. Итак, что я сделал: есть массив свойств контроллера таблицы, есть метод, который загружает объекты в массив. Вызов этого метода в режиме просмотра всегда загружался. – CodeGeass

ответ

0

Вскоре: После нажатия кнопки в ViewController вы должны изменить массив источников данных в виде таблицы.


Пример обработчика нажать кнопку в ViewController

-(void)buttonPressed:(UIButton *)sender 
{ 
    self.items[indexPath.row] = sender.titleLabel.text; //ok or failed 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

self.items является источником данных массив вашего TableViewController

indexPath является indexPath прессованного клетки


Пример из TableViewCont роликовый табличный (это не реальный код, но он должен работать)

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [self.tableView reloadData]; 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return items.count; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 50.0; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // Reuse or init cell... 

    cell.textLabel.text = items[indexPath.row]; 

    return cell; 
} 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    MYViewController *viewController = [[MYViewController alloc]init]; 
    viewController.items = items; 
    viewController.indexPath = indexPath; 
    [self.navigationController pushViewController:viewController animated:YES]; 
} 
0

В cellForRowAtIndexPath: написать код, как показано ниже
static NSString *cellIdentifier = @"Reuse identifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if(cell==nil){ cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; } // add text to your label here return cell;
и не пытается добавить ярлык в cellForRowAtIndexPath создать ярлык в XIb или раскадровке ,

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