【问题标题】:How to open local file in a view controller如何在视图控制器中打开本地文件
【发布时间】:2017-05-11 15:49:02
【问题描述】:

我有一个从服务器下载文件的应用程序。我想在新的视图控制器中打开文件系统中存在的这些文件。

如何在不使用网页视图的情况下打开文件

【问题讨论】:

  • 您使用的是哪种文件类型?
  • 文件类型有txt、pdf,也可能是plist。
  • 对于文本,您需要UITextView, UITextField, or UILabel,对于图像-。 UIImageView,对于 PDF,您需要使用类似 PDFReader
  • 是无视图控制器,可用于实现所有类型的文件。
  • 您检查文件的下载位置。如果你有一个路径,你可以使用 NSFileManager 打开下载的文件。打开一个 pdf 我想我们通常是 web-view。对于图像,我们可以使用 imageView,对于文本,您可以使用 label 或 textview。

标签: ios file nsfilemanager


【解决方案1】:

我不确定我是否真的理解您的问题,因为它有点直截了当。我假设您已将文件下载到您选择的路径。如果没有,您最常去寻找它们,这可能有点麻烦。因此,您已将文件下载到您选择的目录中。这可以是全局字符串,也可以将其传递给新的视图控制器。

如果它不是一个全局字符串,例如,每次下载不同的文件时文件夹名称都会发生变化,你可以像这样为 segue 做准备:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if let identifier = segue.identifier {
        switch identifier {
        case "myIdenfifier":
            let vc = segue.destination as! NewViewController
            vc.filePathName = self.filePathName
        default:
            print("I have no idea what's going on.")
        }
    }
}

现在在新的视图控制器中,你有了文件。您需要检索文件的路径。如果文件是图像,您可以使用以下方法将图像加载到内存中:

let retrievedImage = UIImage(contentOfFile: filePathName)

filePathName 是您传递给新视图控制器的文件的路径名。

希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    你可以使用QLPreviewController: https://developer.apple.com/reference/quicklook/qlpreviewcontroller

    但不确定它是否适用于 plist。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多