2012-05-21 2 views
0

У меня есть 6 таблиц с неустойчивостью и когда выбрана строка в одном из них (в областяхFirstTable это важно), я хочу, чтобы они выполняли segue. Код для регионовFirstTable отлично работает, но, как и для другой части, это не так: segues просто не работают. Я знаю, что это слишком грязно, но ответ должен стоять на поверхности.performSegueWithIdentifier if-statement не работает

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

if (tableView == self.regionsFirstTable) { 
    {  if (indexPath.row==0) 
     if (indexPath.section==1) { 
      [self performSegueWithIdentifier:@"toAfricanFS" sender:indexPath]; 
     } else { 
      [self performSegueWithIdentifier:@"toAfricanFS" sender:indexPath]; 
     } 
     if (indexPath.row==1) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toAsiaFS" sender:indexPath]; 

      } else { 
       [self performSegueWithIdentifier:@"toAsiaFS" sender:indexPath]; 
      } 
     if (indexPath.row==2) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toEuropeFS" sender:indexPath]; 

      } else { 
       [self performSegueWithIdentifier:@"toEuropeFS" sender:indexPath]; 
      } 
     if (indexPath.row==3) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toLatinFS" sender:indexPath]; 
      } else { 
       [self performSegueWithIdentifier:@"toLatinFS" sender:indexPath]; 
      } 
     if (indexPath.row==4) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toNorthAmericaFS" sender:indexPath]; 
      } else { 
       [self performSegueWithIdentifier:@"toNorthAmericaFS" sender:indexPath]; 
      } 
    } //Dealing with the first UITableView, it works 

    if (tableView == self.africaFirstTable) { 
     [self performSegueWithIdentifier:@"fromAfricatoDone" sender:indexPath]; 
    } 
    if (tableView == self.asiaFirstTable) { 
     [self performSegueWithIdentifier:@"fromAsiatoDone" sender:indexPath]; 
    } 
    if (tableView == self.europeFirstTable) { 
     [self performSegueWithIdentifier:@"fromEuropetoDone" sender:indexPath]; 
    } 
    if (tableView == self.latinAmericaFirstTable) { 
     [self performSegueWithIdentifier:@"fromLatintoDone" sender:indexPath]; 
    } 
    if (tableView == self.northAmericaFirstTable) { 
     [self performSegueWithIdentifier:@"fromNorthAmericatoDone" sender:indexPath]; 
    } //This whole thing is not working as it should be 
} 
} 

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

P.S. Все мои таблицы имеют только один indexPath.section

+0

есть больше информации вы можете предоставить? Не похоже, что вы получаете какие-то исключения. Если вы установите точку останова, начинающуюся с строки: «self.africaFirstTable», являются ли какие-либо из этих утверждений if правильными? Если да, подтвердите ли вы, что идентификаторы segue написаны так же, как и в вашем раскадровке? – mservidio

+0

Имена правы, я скопировал их из раскадровки, и даже если я оставлю первое утверждение и закомментирую остальные, он все равно не работает. –

+0

Вы попадаете в точку разрыва, хотя вы ожидаете, что будет выполняться segue? – mservidio

ответ

1

Похоже, что у вас слишком много { сек после первого if, так что все ваши чеки для if (tableView == self.northAmericaFirstTable) не ударять, потому что это все вложенные в if (tableView == self.regionsFirstTable) блоке

EDIT:

Вот фиксированный код, теоретически

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

if (tableView == self.regionsFirstTable) { 
    if (indexPath.row==0) 
     if (indexPath.section==1) { 
      [self performSegueWithIdentifier:@"toAfricanFS" sender:indexPath]; 
     } else { 
      [self performSegueWithIdentifier:@"toAfricanFS" sender:indexPath]; 
     } 
     if (indexPath.row==1) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toAsiaFS" sender:indexPath]; 

      } else { 
       [self performSegueWithIdentifier:@"toAsiaFS" sender:indexPath]; 
      } 
     if (indexPath.row==2) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toEuropeFS" sender:indexPath]; 

      } else { 
       [self performSegueWithIdentifier:@"toEuropeFS" sender:indexPath]; 
      } 
     if (indexPath.row==3) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toLatinFS" sender:indexPath]; 
      } else { 
       [self performSegueWithIdentifier:@"toLatinFS" sender:indexPath]; 
      } 
     if (indexPath.row==4) 
      if (indexPath.section==1) { 
       [self performSegueWithIdentifier:@"toNorthAmericaFS" sender:indexPath]; 
      } else { 
       [self performSegueWithIdentifier:@"toNorthAmericaFS" sender:indexPath]; 
      } 
    } //Dealing with the first UITableView, it works 

    if (tableView == self.africaFirstTable) { 
     [self performSegueWithIdentifier:@"fromAfricatoDone" sender:indexPath]; 
    } 
    if (tableView == self.asiaFirstTable) { 
     [self performSegueWithIdentifier:@"fromAsiatoDone" sender:indexPath]; 
    } 
    if (tableView == self.europeFirstTable) { 
     [self performSegueWithIdentifier:@"fromEuropetoDone" sender:indexPath]; 
    } 
    if (tableView == self.latinAmericaFirstTable) { 
     [self performSegueWithIdentifier:@"fromLatintoDone" sender:indexPath]; 
    } 
    if (tableView == self.northAmericaFirstTable) { 
     [self performSegueWithIdentifier:@"fromNorthAmericatoDone" sender:indexPath]; 
    } //This whole thing is not working as it should be 
} 
+0

Работает как очарование! Спасибо за вашу помощь! –

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