我使用Quicklook显示一些PDF文件,用户需要只看到该文件然后单击“完成”。默认UI提供更多选项,如复制或打印电子邮件。 UI还显示完成按钮旁边的箭头,可以导航到其他可用文件。 我需要删除这两个(隐藏)。 现在我浏览了一下,大多数帖子都谈到了继承QLPreviewController,并自定义新类。所以我这样做的方式如下:
@interface MyQLViewer : QLPreviewController <QLPreviewControllerDataSource, QLPreviewControllerDelegate> {
}
并在.m文件中
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[self navigationItem] setRightBarButtonItem:nil];
}
现在在我自己的项目中,我在xib的viewdidload事件中有一个MyQLViewer属性,我[MyQLViewer alloc] init]。
这不起作用。我错过了什么?
感谢。
答案 0 :(得分:1)
据我所知,不再可能使用iOs 6禁用右键 你可以在这里读更多关于它的内容: http://www.cimgf.com/2012/07/11/a-better-fullscreen-asset-viewer-with-quicklook/
更新: 这个解决方法适合我。 如果文档加载需要很少的瞬间
,则延迟调用会导致重新添加- (void)removeActionButton {
if(removeShareCounter > 13){
[removeButtonTimer invalidate];
}
else{
//iOs doesn't support setRightBarButtonItem to nil
if ([self iOsEqual:6]) {
[self inspectSubviewsForView:self.view];
}
else{
[self.navigationItem setRightBarButtonItem:nil animated:NO];
}
removeShareCounter++;
}
}
- (void)inspectSubviewsForView:(UIView *)view
{
if(view != NULL){
if ([view isKindOfClass:[UINavigationBar class]])
{
UINavigationBar *bar = (UINavigationBar *)view;
if ([[bar items] count] > 0)
{
UINavigationItem *navItem = [[bar items] objectAtIndex:0];
[self performSelectorOnMainThread:@selector(removeShareButton:) withObject:navItem waitUntilDone:YES];
}
}
else{
for (UIView *subView in view.subviews) {
[self inspectSubviewsForView:subView];
}
}
}
}
-(void)removeShareButton: (UINavigationItem *)navItem{
[navItem setRightBarButtonItems:nil animated:NO];
}