Представление таблицы - при нажатии на заявление - PullRequest
0 голосов
/ 21 июля 2011

Все,

У меня есть табличное представление, которое мне нужно реагировать по-разному, когда ячейка щелкается строкой X и строкой Y. X переводит вас в X View (XViewController), а Yпереход к Y View (YViewController) и т. д. и т. д. Где было бы наилучшим местом для вставки этого оператора if и как я могу сделать так, чтобы он перешел к правильному представлению?

Спасибо

Ответы [ 2 ]

5 голосов
/ 21 июля 2011

Вы хотите реализовать

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

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

Например:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
    if ([cell.text isEqualToString:stringX]) {
        XViewController *xvc = [[XViewController alloc] init];
        [self presentModalViewController:xvc animated:YES];
        [xvc release];
    } else {
        YViewController *yvc = [[YViewController alloc] init];
        [self presentModalViewController:yvc animated:YES];
        [yvc release];
}

Затем, в зависимости от того, какой viewController нажат, вы можете отклонить его с помощью

[self dismissModalViewControllerAnimated:YES];
2 голосов
/ 21 июля 2011

Метод:

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

Это то, где вы бы это сделали. Затем вы бы взяли ячейку из этого пути индекса:

UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];

Наконец, проверьте строку. Код должен выглядеть так:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;{
  UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];

  if([cell.text isEqualToString:X]){
    // load view X and push onto the view controller
  }
  else{
    // load view Y and push onto the view controller
  }
}

Если вы использовали пользовательские ячейки, просто посмотрите на пользовательское свойство вместо .text.

Вы действительно должны посмотреть здесь:

Справочник по контроллеру навигации Apple

Это действительно просто. Просто выделите новый контроллер вида и вставьте его в контроллер навигации:

NewViewController * newView = [[NewViewController alloc] init];
[self.navigationController pushViewController:newView animated:YES];
[newView release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...