如何添加返回或取消按钮以关闭 UIDocumentBrowser

Posted

技术标签:

【中文标题】如何添加返回或取消按钮以关闭 UIDocumentBrowser【英文标题】:How to add back or cancel button to dismiss UIDocumentBrowser 【发布时间】:2018-09-07 11:50:40 【问题描述】:

我需要提供 UIDocumentBrowser 来上传文档。但我无法在导航栏中放置后退或取消按钮。下图是 WhatsApp 中文件浏览器的屏幕截图。 有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

UIDocumentBrowserViewController 被设计为仅用作根视图控制器,这就是它没有“返回”或“取消”按钮的原因。根据文档:

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app

重要

始终将文档浏览器指定为应用的根视图控制器。 不要将文档浏览器放在导航控制器、标签栏、 或拆分视图,并且不要以模态方式显示文档浏览器。

如果您想从另一个位置显示文档浏览器 您的视图层次结构,请改用UIDocumentPickerViewController

【讨论】:

【参考方案2】:

为 UINavigationBar 和 UIBarButtonItem 使用具有黑色外观的 CustomDocumentPickerViewController。使用下面的代码

import UIKit

class CustomDocumentPickerViewController: UIDocumentPickerViewController 

  override func viewWillAppear(_ animated: Bool) 
    super.viewWillAppear(animated)

    UINavigationBar.appearance().tintColor = UIColor.black
    UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.black], for: .normal)
  

  override func viewWillDisappear(_ animated: Bool) 

    UINavigationBar.appearance().tintColor = UIColor.white // your color
    UIBarButtonItem.appearance().setTitleTextAttributes(nil, for: .normal)
    super.viewWillDisappear(animated)

  


【讨论】:

以上是关于如何添加返回或取消按钮以关闭 UIDocumentBrowser的主要内容,如果未能解决你的问题,请参考以下文章

C#里如何点击“取消(button2)”按钮后关闭窗体2,并返回窗体1?

asp网页中,如何实现点击按钮弹出对话框,然后点击“确定”关闭窗口,点击“取消”返回?尽快,非常感谢!

UISearchBar - 当点击取消按钮时,如何防止关闭 scopeBar?

重命名文档而不关闭 UIDocument

尝试关闭 UIDocument 时防止崩溃

android 弹出对话框后禁止back键 必须按对话框里的确定或取消按钮才能关闭对话框