Логическая ошибка контроллера просмотра - PullRequest
0 голосов
/ 30 апреля 2011

Мне интересно, может кто-нибудь сказать, что мне не хватает? Я получил табличное представление с двумя разделами, но когда я нажимаю на что-либо в разделе 2, загружается содержимое из ячеек раздела 1. Заранее спасибо.

вот мой выбор ответа:

    UIViewController *targetViewController = [[views objectAtIndex:indexPath.row]     objectForKey:@"controller"];
   [[self navigationController] pushViewController:targetViewController animated:YES];

if (indexPath.section == 0)
      [partA  objectAtIndex:indexPath.row];
    else 
      [partB objectAtIndex:indexPath.row];

      [targetViewController release];
}

Ответы [ 3 ]

0 голосов
/ 01 мая 2011

Вы можете рассмотреть возможность использования следующего кода вместо выражения if.

UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:indexPath];

Также удалите релиз, потому что вы не сохранили или не распределили его.

Но, честно говоря, я этого не делаюпонять, что вы хотите сделать.Что вы подразумеваете под "загружен"?Загружен где?

0 голосов
/ 21 ноября 2012

Вы не предоставили его, но я предполагаю, что вы должны переопределить метод didSelectRowAtIndexPath и проверить владельца выбранной ячейки:

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

{

if ( tableView == _tableView1){

     //Do something
}

else if ( tableView == _tableView2){

     //Do something different
}

else return;
0 голосов
/ 01 мая 2011

В вашем tableView:didSelectRowAtIndexPath: методе вы можете не учитывать раздел;то есть вы извлекаете UIViewController из массива views, используя indexPath.row, когда вы, вероятно, также должны использовать indexPath.section в качестве квалификатора.Трудно дать лучший ответ, не видя больше вашего контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...