pushViewController 似乎不适用于情节提要和 QLPreviewController
Posted
技术标签:
【中文标题】pushViewController 似乎不适用于情节提要和 QLPreviewController【英文标题】:pushViewController doesn't seem to work with storyboard and QLPreviewController 【发布时间】:2012-07-24 16:09:07 【问题描述】:尝试使用情节提要 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 的链接。
【问题讨论】:
【参考方案1】:您的 QLPreviewController 未推送,因为 [self navigationController] 为 nil。
您必须像这样将 UINavigationController 添加到您的故事板中:
(假设 FirstViewController 是你的 UITableViewController) 从左到右:UITabBarController、UINavigationController、FirstViewController
【讨论】:
那行得通。谢谢。您必须添加两个视图才能获得一个,这似乎不直观,但现在很有意义。以上是关于pushViewController 似乎不适用于情节提要和 QLPreviewController的主要内容,如果未能解决你的问题,请参考以下文章
Swift pushViewController 适用于 iPad 但不适用于 iPhone
navigationItem.setLeftBarButton() 不适用于旧版本
NSURLSessionConfiguration timeoutIntervalForRequest 似乎不适用于后台会话
NSBackgroundColorAttributeName 似乎不适用于 iOS 10.3
contentInsetAdjustmentBehavior 似乎不适用于子 UIControllerView 的 UIScrollview