presentOpenInMenuFromBarButtonItem:不会导致菜单出现

我试图通过UIDocumentInteractionControllerpresentOpenInMenuFromBarButtonItem显示打开菜单。 这不会在屏幕上显示UIDocumentInteractionController 。 奇怪的是,如果我用“ Options ”replace“ OpenIn ”,那么它将按预期工作。

是什么原因导致presentOpenInMenuFromBarButtonItem不能工作? 谢谢。

  NSString *fileName = [NSString stringWithFormat:@"%@text.txt", NSTemporaryDirectory()]; [self.textToShare writeToFile:fileName atomically:NO encoding:NSUTF8StringEncoding error:nil]; NSURL *textFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"text.txt"]]; self.openInController = [UIDocumentInteractionController interactionControllerWithURL:textFileURL]; self.openInController.delegate = self; [self.openInController presentOpenInMenuFromBarButtonItem:self.buttonToPresentFrom animated:YES]; //replacing OpenIn with Options causes it to appear 

问题是,presentOpenIn …只显示一个菜单,当有应用程序安装,可以打开你发送的文件。 iOS模拟器没有任何打开.txt文件的应用程序,所以它似乎没有工作。 如果你在物理设备上运行,它工作得很好。

我决定添加这个更好的行为:

 BOOL didPresentOpenIn = [self.openInController presentOpenInMenuFromBarButtonItem:self.buttonToPresentFrom animated:YES]; if (!didPresentOpenIn) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Apps Available" message:@"You do not have any apps installed that can open text files." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; }