2016-05-15 21 views
0

In meiner App wählte ich Dateien von UIDocumentPicker und Dateinamen auf eine tableView. Wenn ich auf eine cell klicke, möchte ich, dass die App die Datei öffnet. Ich habe keine Ahnung, wie ich die zuvor ausgewählten Dateien öffnen soll. Bitte helfen Sie.Wie öffne ich Dateien, die mit UIDocumentPicker importiert wurden?

import UIKit 

extension ViewController: UIDocumentMenuDelegate { 
    func documentMenu(documentMenu: UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) { 
     documentPicker.delegate = self 

     self.presentViewController(documentPicker, animated: true, completion: nil) 
    } 
} 

extension ViewController: UIDocumentPickerDelegate { 
    func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL) { 
     if controller.documentPickerMode == UIDocumentPickerMode.Import { 
      dispatch_async(dispatch_get_main_queue()) { 

       if let fileName = url.lastPathComponent { 

       self.files.append(fileName) 

      } 

      }    
     }  
    }   
} 

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 
    var files = [AnyObject]() 

    @IBOutlet weak var fileTableView: UITableView! 
    @IBAction func addDocuments(sender: AnyObject) { 
     let importMenu = UIDocumentMenuViewController(documentTypes: ["public.data", "public.text"], inMode: .Import) 

     importMenu.delegate = self 

     self.presentViewController(importMenu, animated: true, completion: nil) 

     let documentPicker = UIDocumentPickerViewController(documentTypes: ["public.data", "public.text"], inMode: .Import) 
     documentPicker.delegate = self 
     documentPicker.modalPresentationStyle = UIModalPresentationStyle.FullScreen 

     self.presentViewController(documentPicker, animated: true, completion: nil) 
    } 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    } 

Antwort

2

Sie müssen einen Verweis auf die gesamte URL behalten, nicht nur den Dateinamen.

Fügen Sie die vollständige url zu self.files hinzu. Dann aktualisieren Sie Ihre cellForRowAtIndexPath, um nur die lastPathComponent dieser URL anzuzeigen.

Dann in didSelectRowAtIndexPath haben Sie Zugriff auf die vollständige URL der Datei.

+0

Hallo rmaddy, nochmals vielen Dank für die schnelle Beantwortung meiner Frage. Ich habe meinen Code wie oben erwähnt geändert. Können Sie für den Code in didSeceltRowAtIndexPath helfen? Ich habe keine Ahnung, wie ich die Datei öffne. – newdeveloper

+0

Öffnen Sie die Datei in welcher Weise? Was machst du eigentlich mit der Datei? Zeigen Sie es dem Benutzer zur Ansicht an? Zum Bearbeiten? Willst du es nur kopieren? Sie müssen klären, was Sie erreichen möchten. – rmaddy

+0

Die Idee ist, Benutzer Dateien auswählen und jederzeit später überprüfen können. Wenn Sie auf eine Zelle klicken, kann die App die Datei dem Benutzer zur Ansicht anzeigen. Vielen Dank. – newdeveloper