Итак, у меня есть 3 раздела, как я сказал в моем предыдущем вопросе, например, «A», «B», «C».
Это код, который я использую:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.row)
{
case 0:
[self.navigationController pushViewController:[[[FirstViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
case 1:
[self.navigationController pushViewController:[[[SecondViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
etc..
}
}
Это моя проблема: в «А» у меня 6 элементов. Если я использую переключатель от 0 до 5, он выталкивает нужные контроллеры вида. Но когда мне нужно вытолкнуть контроллеры вида для секции «B», которая содержит еще 9 элементов, я продолжаю работу со счетчиком (например, случай 7,8 и т. Д.), Он снова начинает показывать контроллеры с самого начала (это снова выталкивает FirstViewController "и т. д.). Та же история для раздела" C ". Как решить эту проблему?
Я ненавижу сгруппированные таблицы, черт.
Редактировать: новый код, цикл
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section)
{
case 0:
switch (indexPath.row) {
case 0:
[self.navigationController pushViewController:[[[FirstViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
case 1:
[self.navigationController pushViewController:[[[SecondViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
}
case 1:
switch (indexPath.row) {
case 0:
[self.navigationController pushViewController:[[[ThirdViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
case 1:
[self.navigationController pushViewController:[[[FourthViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
case 2:
[self.navigationController pushViewController:[[[FifthViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
}
case 2:
switch (indexPath.row) {
case 0:
[self.navigationController pushViewController:[[[SixthViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
case 1:
[self.navigationController pushViewController:[[[SeventhViewController alloc] initWithNibName:nil bundle:nil] autorelease] animated:YES];
break;
}
}
}
Я явно вырезал код, слишком длинный в противном случае.
Редактировать 2:
Работал! Серхио ответил правильно, но я поставил if (indexPath.section == 0)
вместо switch (indexPath.section){}