我遇到了 UIDocumentInteractionController 的问题。我能够通过 presentOptionsMenuFromBarButtonItem 正确显示弹出框。
当用户触摸 barbuttonitem 时,我触发以下方法:
- (IBAction)share:(id)sender {
if (docIntController) {
[docIntController dismissMenuAnimated:NO];
docIntController = nil;
}
NSString *fileURL = [(Documents *)(self.detailItem) url];
NSArray *subStrings = [fileURL componentsSeparatedByString:@"/"];
NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:[subStrings lastObject]];
docIntController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
docIntController.delegate = self;
docIntController.UTI = @"com.adobe.pdf";
[docIntController presentOptionsMenuFromBarButtonItem:sender animated:YES];
}
无论如何,当用户触摸打印按钮,然后再次触摸 barbutton 时,打印选项菜单不会消失,如下图所示:
此外,如果用户再次触摸打印选项,选项弹出框将消失(但不是旧的打印选项),并且将创建另一个打印选项弹出框。
实际上,如果用户在弹出框之外触摸以将其关闭,则只会关闭第一个并且旧的为空,如下所示: