Я создал подкласс 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 не отображается - вместо этого я вижу пустое представление с черным фоном. Как я могу с этим справиться? Можно ли по-прежнему использовать секвенции?