Ios addSubview脱机时不调用QLPreviewController数据源实例
我有以下代码来添加Ios addSubview脱机时不调用QLPreviewController数据源实例,ios,addsubview,qlpreviewcontroller,Ios,Addsubview,Qlpreviewcontroller,我有以下代码来添加qlviewcontroller子视图 { QLPreviewController *preview = [[QLPreviewController alloc] init]; preview.delegate = self; preview.dataSource = self; [self addChildViewController:preview]; [self.view addSubview:preview.view];
qlviewcontroller
子视图
{
QLPreviewController *preview = [[QLPreviewController alloc] init];
preview.delegate = self;
preview.dataSource = self;
[self addChildViewController:preview];
[self.view addSubview:preview.view];
[preview didMoveToParentViewController:self];
self.previewController = preview;
}
-(NSInteger) numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
}
-(id) previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index
{
return self.url;
}
self.url
是位于NSTemporaryDirectory中的NSURL-file://localhost//.../blah.pdf
我的问题是,当我的笔记本电脑连接到internet时,文档显示为子视图,但当我的笔记本电脑未连接时,numberofpreviewWitemsinPreviewController
&previewWitematindex
不会被调用
- 我尝试了一个带有简单视图控制器的普通程序,它似乎工作得很好。(我的应用程序比这更复杂)
- 当我尝试以模态视图的形式呈现文档时,无论模拟器是否连接到internet,它似乎都能工作。
[自我呈现视图控制器:预览动画:无完成:无]代码>-->工作一致
我需要得到在线和离线模式下工作的子视图,如果有人可以帮助,这将是伟大的 您可能会遇到奇怪的行为,因为QLPreviewController的视图没有设计为嵌入到另一个视图中。从概述中可以看出:
要显示快速预览控制器,您有两个选项:可以使用UINavigationController对象将其推入视图,也可以使用其父类UIViewController的presentModalViewController:animated:方法以模式全屏显示它
话虽如此,您可以尝试:
强制QLPreviewController(重新)显示其内容。尝试添加[self.previewController reloadData]代码>到第一个方法的末尾。这将强制触发数据源方法
强制视图“刷新”其子视图:[self.view setNeedsLayout]
(这实际上可能会像第一个选项一样强制重新加载数据)
祝你好运 谢谢!我不得不强迫ViewDid让它工作,这对我来说似乎很好。非常感谢。长期以来一直存在此问题,[self.previewController reloadData]对我非常有效。请尝试使用此链接对我有效