我一直在使用Apple示例代码来查看此处的文档:
https://developer.apple.com/library/ios/samplecode/DocInteraction/Listings/ReadMe_txt.html
我已经删除了所有我不需要的位,并且让我的工作方式非常符合我的要求。问题是我不希望用户有权访问Document Controller右上角的“Actions”菜单。每次从列表中选择文档时都会出现此信息:
理想情况下,我想一起删除按钮,但是如果我可以禁用它或禁用其中的所有选项也足够了。我发现了这个问题:
但我无法弄清楚如何使用该建议来禁用菜单中的选项。我在这里上传了修改过的示例代码:
http://plasma.servebeer.com/DocSampleCode.zip
最后一个注意事项是App Store不会出于私人,个人用途,所以如果有非正式的方式,那么我也有兴趣了解它。
非常感谢任何帮助,提前谢谢。
血浆
答案 0 :(得分:2)
使用UINavigationControllerDelegate
@interface DITableViewController () <UIDocumentInteractionControllerDelegate, UINavigationControllerDelegate>
将navigationController委托指定给self
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationController.delegate = self;
}
更改documentInteractionControllerViewControllerForPreview
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)interactionController {
return self.navigationController;
}
添加此UINavigationControllerDelegate
方法
// Called when the navigation controller shows a new top view controller via a push, pop or setting of the view controller stack.
- (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[QLPreviewController class]]) {
viewController.navigationItem.rightBarButtonItem = nil;
}
}
更新MP4文件
在MP4文件中,操作按钮位于UIToolbar
- (void)navigationController:(UINavigationController*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[QLPreviewController class]]) {
viewController.navigationItem.rightBarButtonItem.customView = [[UIView alloc] init];
UIBarButtonItem *item = viewController.toolbarItems.firstObject;
item.customView = [[UIView alloc] init];
}
}
N.B。这可能不适用于iOS的未来版本
答案 1 :(得分:0)
创建 QLPreviewController 类后,您需要将rightBarButtonItem设置为nil。代码段:
QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.navigationItem.rightBarButtonItem = nil;
我确实下载了项目并执行后#34; Action&#34;按钮不显示在顶部导航项中,而是显示在工具栏中。然后在这种情况下,你需要继承 QLPreviewController 并覆盖 viewWillAppear ,如下所示。
@implementation ExViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSMutableArray *a = [NSMutableArray arrayWithArray:@[]];
for (NSUInteger i = 0; i < self.toolbarItems.count; i++) {
if (i == 0) {
continue;
}
[a addObject:self.toolbarItems[i]];
}
}
@end
答案 2 :(得分:-1)
如果您想隐藏按钮,给出的答案将不适用于 iOS 10.0 及更高版本的 Swift语言。您可以使用WKWebView。希望可以节省您的时间。