Как выделить подкласс UITableViewCell?

Я создал подкласс UITableViewCell .До сих пор я использовал только ячейки, которые «спроектированы» в моей раскадровке, где я могу настраивать переходы.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    [super prepareForSegue:segue sender:sender];

    NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];

    if ([[segue identifier] isEqualToString:@"showNews"]) {
        NewsViewController *newsViewController = [segue destinationViewController];
        News *news = (News*)[self.fetchedResultsController objectAtIndexPath:indexPath];
        newsViewController.news = news;
    }
}

После создания подкласса UITableViewCell я больше не могу использовать раскадровку для создания переходов для настраиваемой ячейки, верно? Я попытался создать ячейку в раскадровке и установить для нее свой собственный класс, но тогда ячейка просто пуста, когда я запускаю приложение.

Вместо этого я просто выделяю и инициализирую настраиваемую ячейку в моем tableView: cellForRowAtIndexPath :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"WSTableViewCell";

    WSTableViewCell *cell = (WSTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[WSTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    WSObject *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
    [cell.titleLabel setText:item.title];

    return cell;
}

Затем в tableView: didSelectRowAtIndexPath я пытаюсь создать NewsViewController, установка элемента новостей и отправка его в navigationController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    News* news = [self.fetchedResultsController objectAtIndexPath:indexPath];
    NewsViewController *newsViewController = [[NewsViewController alloc] init];
    newsViewController.news = news;
    [[self navigationController] pushViewController:newsViewController animated:YES];
}

Но когда я выбираю строку, мой NewsViewController не отображается - вместо этого я вижу пустое представление с черным фоном. Как я могу с этим справиться? Можно ли по-прежнему использовать секвенции?

5
задан dhrm 1 February 2012 в 13:45
поделиться