当尝试通过情节提要tableviewcontroller实现动态表(使用代码)时,执行以下代码时无法推送详细视图。

[[self navigationController] pushViewController:previewController animated:YES];


没有引发任何错误。没有给出任何线索,只是所选表格单元格突出显示为蓝色并保持这种状态。使用情节提要板时此问题很普遍,但使用xibs时则不然。

这是didSelectRowAtIndexPath方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    QLPreviewController *previewController = [[QLPreviewController alloc] init];
    previewController.dataSource = self;
    previewController.delegate = self;

    // start previewing the document at the current section index
    previewController.currentPreviewItemIndex = indexPath.row;

    [[self navigationController] pushViewController:previewController animated:YES];
    [previewController release];
}


这是示例project with the issue的链接。

最佳答案

您的QLPreviewController未推送,因为[self navigationController]为零。

您必须像这样将UINavigationController添加到故事板:

(假设FirstViewController是您的UITableViewController)
从左到右:UITabBarController,UINavigationController,FirstViewController

10-08 11:47