2009-08-18 3 views
0

в приложении iphone.Значение в Indexpath.row не обновляется

Я пытаюсь получить значение indexPath.row (из метода didselectedrowatindexpath), чтобы что-то сделать на основе строки, выбранной в программно созданной таблице.

Мне нужно получить доступ к indexpath.row из метода didselectedrowatindexpath, где if/else определит действие на основе indexpath.row.

есть 7 изображений карт в приложении и один [список меню] в таблице. всякий раз, когда пользователь нажимает на строку таблицы, необходимо прикоснуться к изображению.

Я пробую этот код получить значение IndexPath.row. Проблема в том, что значение indexPath.row не обновляется каждый раз. Это просто берет старую ценность. Пожалуйста, представьте, как решить эту проблему.

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event 
{ 

    NSUInteger nSection =[myTableView numberOfSections]-1 ; 
    NSUInteger nRow = [myTableView numberOfRowsInSection:nSection];  
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:nRow inSection:nSection]; 

    NSLog(@"No of sections in my table view %d",nSection);  
    NSLog(@"No of rows in my table view %d",nRow); 
    NSLog(@"Value of selected indexPath Row %d", [indexPath.row]); 
    NSLog(@"VAlue of Array arrOperationChk %d",[arrOperationChk count]); 

} 
+0

Привет, приветствуются. Я думаю, вам будет легче решить вашу проблему, если вы отредактируете свой вопрос с помощью метода, в котором находятся эти строки. –

ответ

1

Этот код, кажется, реагирует на что-то (стол?). Затем вы спрашиваете таблицу, сколько строк оно имеет в своем последнем разделе, и создайте для него индексный путь.

Таблица кэширует количество строк в каждом разделе. Если вы изменили количество строк, вам нужно указать таблицу, вызвав -insert/deleteRowsAtIndexPaths:withRowAnimation: или позвонив по номеру -reloadData. В противном случае таблица не может знать, что ей необходимо повторно запросить свой источник данных (который вы предоставляете).

1

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

Если вы хотите, чтобы получить выбранную ячейку, используйте метод

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

в вашем UITableViewController объекте.

1

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

Кроме того, синтаксис [indexPath.row] выглядит неправильно - вам не нужны квадратные скобки там, если вы не вызываете метод. Когда вы используете точечный синтаксис, похожий на указатель в Objective-C, вы не думаете об этом как о вызове метода (хотя есть один, неявно), а скорее как псевдо-экземпляр переменной как структуры.

Главная цель вашей большой картины? Если мы понимаем, чего вы пытаетесь достичь/что такое желаемое поведение, может возникнуть более полезный ответ.

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