【问题标题】:UIDocumentPickerViewController buttons look disabled but work -- why?UIDocumentPickerViewController 按钮看起来被禁用但可以工作——为什么?
【发布时间】:2018-07-20 20:06:11
【问题描述】:

我正在使用 UIDocumentPickerViewController 将图像导出到 iOS 11 中的文件应用程序。选择器出现,我可以选择文件的目的地。我收到文件被移动的回调,我可以在文件中看到它们,所以看起来工作正常。然而,用户界面是错误的——添加和取消按钮看起来被禁用,但它们实际上工作正常。如果我只使用共享表中的保存到文件,按钮看起来不会这样。

这是我的代码:

UIDocumentPickerViewController *docPicker = 
[[UIDocumentPickerViewController alloc] initWithURLs:self.assetURLs inMode:UIDocumentPickerModeExportToService];

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

我尝试过的事情:
1) 我尝试过 Move 和 Export 类型
2) 我启用了 iCloud 功能(所有三个项目:键值、文档和 CloudKit)——体验没有区别 [事实上,即使没有这些设置,代码也可以工作,尽管文档另有说明])

这是 UI 外观的屏幕截图。如您所见,用户界面说它将将该项目添加到所选目录(事实上,如果我点击添加,它就会这样做):

有人知道如何让按钮显示为蓝色并启用吗?我在网上没有找到任何可以尝试的示例代码——如果有人有指针,我可以试试看它是否与我的配置或代码有关。

【问题讨论】:

  • 您的应用是否会改变应用其他部分的相关外观?
  • 这是个好问题。我的应用程序很暗,所以我有一些外观变化。我禁用了它们,蓝色又回来了。事实证明 UINavigationBar.appearance.tintColor 会以某种方式影响这些按钮,即使我认为它们不应该。不知道我将如何解决它,但至少我有一个解释。非常感谢!
  • [UINavigationBar 外观].tintColor = [UIColor yourColor]; // 按钮标题颜色和 [UINavigationBar 外观].backgroundColor = [UIColor yourColor]; // 用于背景颜色。像魅力一样为我工作。我只有 iOS 14 版本有这个问题。

标签: ios uidocumentpickervc files-app


【解决方案1】:

我不喜欢像批准的答案中建议的那样临时更改全局外观。您只需重置 UIDocumentPickerViewController 的外观,条形按钮就会恢复到原来的蓝色。

if #available(iOS 11.0, *) {
    UINavigationBar.appearance(whenContainedInInstancesOf: [UIDocumentBrowserViewController.self]).tintColor = nil
}

【讨论】:

    【解决方案2】:

    根据您的评论,您的应用正在使用UINavigationBar.appearance 设置tintColor。这将影响所有导航栏,包括系统导航控制器的导航栏,例如UIDocumentPickerViewController

    我已经在自己的一个应用程序中处理了这个问题。一种解决方案是将UIDocumentPickerViewController 子类化,并在需要选择器视图的任何地方使用您的子类。在您的子类中,覆盖viewDidLoad 并将UINavigationBar.appearance.tintColor 设置回nil。并且还覆盖 viewWillDisappear 以将 UINavigationBar.appearance.tintColor 重置为所需的颜色。

    【讨论】:

    • 好主意。感谢您的建议。
    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2012-12-04
    • 2018-04-03
    • 2021-12-12
    • 2019-01-29
    相关资源
    最近更新 更多