2014-01-08 2 views
1

У меня есть два UITableView в viewController. Оба имеют разные теги. UITableview с тегом 0 редактируется, а тег 1 не редактируется. Мои проблемы - это когда выбрать строку в UITableview с тегом 1, его не вызывать. Но когда я красть didSelectRowAtIndexPath становится называются для тега 1.iOS: didSelectRowAtIndexPath не называется

Вот мой код,

- (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
      if (tableView.tag == 0) { 
       return YES; 
      } 
      else if (tableView.tag == 1) 
      { 
       return NO; 
      } 
     return NO; 
    } 


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView.tag == 0) 
    { 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
     { 
      //My stuff 
     } 
    } 
    else editingStyle = UITableViewCellEditingStyleNone; 
} 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (tableView.tag == 1) 
    { 
     switch (indexPath.row) 
     { 
      case 0: 
       [self.navigationController popToRootViewControllerAnimated:YES]; 
       break; 
      case 1: 
       [self performSegueWithIdentifier:@"mapPageSegue" sender:nil]; 
       break; 
      case 2: 
       [self closeMenuTable]; 
       [self listenMusic]; 
       break; 
      default: 
       break; 
     } 
    } 
} 
+1

Показать метод 'didSelectRowAtIndexPath'. –

+0

Есть ли шанс, что вы внедрили метод willSelectRowAtIndexPath:? Потому что, если у вас есть шанс, что вы блокируете выбор для пути индекса, а didSelect ... не будет вызван. – atreat

+0

@lexaddicted, я отредактировал мое сообщение, пожалуйста, найдите мой метод didSelectRowAtIndexPath – Logunath

ответ

2

На основании ваших комментариев, которые я предполагаю, что вы не установите UITableViewDelegate поскольку tableView:didSelectRowAtIndexPath: является методом этого протокола.

В любом случае, я бы поставил точку останова и отлаживал. Это правильный путь для решения проблем.

Кроме того, вместо того, чтобы полагаться на tag, я полагался бы на ссылки (с помощью выходов IB, свойств или ivars) из двух таблиц. Так, например.

if(tableView == self.myFirstTable) { 
    // do stuff here 
} else { 
    // do other stuff here 
} 
+0

Я установил делегатов, но я попробую с IBOutlets и дам вам знать. – Logunath

+0

@Logunath Но теперь это работает для вас? –

+0

Нет, его не работает. – Logunath

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