我正在开发一个项目,该项目使用来自两个不同视图的QLPreviewController
来显示PDF。一个视图将QLPreviewController
推送到基本导航,另一个视图是一个模态视图,将QLPreviewController
提升为模态。
我最初使用推送进行设置时遇到了问题,包括设置导航栏不透明度和阻止我的PDF的导航栏。我能够通过继承QLPreviewController
:
#import "CustomPreviewController.h"
@interface CustomPreviewController ()
@end
@implementation CustomPreviewController
-(id) init {
self = [super init];
if(self){
// init
} return self;
}
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// set translucency of navigation bar
self.navigationController.navigationBar.translucent = NO;
// nav bar does not overlap content
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = YES;
}
@end
但是,现在我需要从应用程序的不同流程中查看相同的PDF。对于这个设计,我需要一个模式弹出到UITableView
,然后从该表视图的推送或模态到QLPreviewController
中的PDF。当我使用相同的推动画时,我得到动画的延迟和断裂以及顶部的毛刺工具栏。 (See this post here)。当我使用模态时,它会平滑地动画,但我的UINavigationBar
隐藏了PDF的顶部并覆盖了页码。类似的导航栏症状与链接帖子中的推送问题相似。我尝试了那里提出的解决方案,以及试图隐藏初始模态和预览控制器的导航栏,但都无济于事。
这可能是Apple的错误/问题但是如果有人发现了可用的解决方法,那么欢迎任何建议。