ios - 使用 UIDocumentPickerViewController,是否可以像在 Slack 中一样在首次打开时显示默认服务(Dropbox、Google Drive 等)?

标签 ios objective-c ios8 icloud drive

通常,UIDocumentPicker 的行为是您呈现,然后用户必须使用右上角的“位置”菜单在服务之间切换。默认情况下是否可以首先显示“Dropbox”或“Google Drive”?几乎就好像我们正在“深度链接”到 UIDocumentPicker 服务。

似乎 Slack App 和 MyMail App 都能做到这一点,但我找不到它的 API。有什么想法吗?

Slack App

最佳答案

尝试使用 UIDocumentMenuViewController 而不是使用 UIDocumentPickerViewController。这是 relevant documentation .

UIDocumentMenuViewController *documentProviderMenu =
[[UIDocumentMenuViewController alloc] initWithDocumentTypes:[self UTIs]
                                                     inMode:UIDocumentPickerModeImport];

documentProviderMenu.delegate = self;
[self presentViewController:documentProviderMenu animated:YES completion:nil];

默认情况下,这将显示包含文档提供程序扩展的应用程序(例如 Dropbox、Google Drive、iCloud 等)。因此,如果用户在其设备上安装了 Dropbox 或 Google Drive,这些选项将自动显示。

您还可以通过调用 addOptionWithTitle:image:order:handler: 方法向菜单添加自定义选项。

关于ios - 使用 UIDocumentPickerViewController,是否可以像在 Slack 中一样在首次打开时显示默认服务(Dropbox、Google Drive 等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31070588/

相关文章:

ios - 从内存数据流在 iOS 上播放音频

objective-c - 如何在连接了蓝牙的设备上播放歌曲(在Objective C中开发的应用)

ios - 仅更改一种特定的 UITabBarItem 色调颜色

ios - UITextView 内部 UITableViewCell 自动布局 iOS 6 与 iOS 7

ios - 覆盖 Objective C 中的类方法

ios - 如何用断点导航器中的定义替换 NSUncaughtExceptionHandler?

ios - Xcode 8 不显示整个 NSLog 输出

ios - 输入电话号码后编辑无法正常工作

ios - 如果对象是观察者并在通知中心注册,如何调用 dealloc 方法?

ios - 为 Xcode 6 iPhone 模拟器移除 iOS 8 UITableView 上的 SeparatorInset