如何打开文件浏览器并在ios中选择.pdf文件

时间:2012-03-29 09:38:14

标签: ios file button explorer

如何在iphone中的应用程序中点击按钮时打开文件浏览器。它必须显示扩展名为.pdf格式的文件。它必须保存到本地数据库。例如,如果我们想要发送电子邮件给xyz,如果我们要发送文件,我们会附上一些文件。如果我们点击附加文件按钮,它将显示文件资源管理器。如果用户点击一个文件资源管理器,则必须打开文件资源管理器。 iphone中的按钮。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

我的IOS应用程序做了类似的事情。由于IOS没有(我认为)一个文件浏览器,你只需要在他点击附加文件时允许使用你的应用程序Documents文件夹我打开一个UIPopoverController我向他展示所有扩展名为I的文件想。在我的例子中是.csv文件,我使用这个算法:

        _data= [[NSMutableArray alloc] init];
    NSString *documentsPath= [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSError *error;
    NSArray* files= [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:&error];
    NSRange range;

    for (NSString* file in files) {
        range = [file rangeOfString:@".csv" 
                            options:NSCaseInsensitiveSearch];
        if (range.location!= NSNotFound) {
            [_data addObject:file];
        }
    }

其中_data是我在tableView中使用的数组,用于了解我拥有的所有csv文件。如果你想这样做,因为文件浏览器显示目录并让用户以递归方式将文件看到目录中。我的表dataSource:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [_data count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell==nil) {
    cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
}    
cell.textLabel.text=[_data objectAtIndex:indexPath.row];    
return cell;
}

我希望它可以帮到你

答案 1 :(得分:0)

目前,使用“文件”应用,您可以选择iCloud上的所有文件或Google云端硬盘等任何连接的云端存储。

import MobileCoreServices

class ViewController: UIViewController, UINavigationControllerDelegate, UIDocumentPickerDelegate {

    func navigateToImportFile() {
        var types: [String] = [String]()

        // Restrict only to PDF, you can use any type you want here like audio, video, texts etc
        types.append(String(kUTTypePDF))

        let documentPickerController = UIDocumentPickerViewController(documentTypes: types, in: .import)
        documentPickerController.delegate = self
        present(documentPickerController, animated: true, completion: nil)
    }


    /// Called when pdf to import is selected
    func documentPicker(_ controller: UIDocumentPickerViewController,
              didPickDocumentAt url: URL) {

        print("Selected URL: \(url)")

        // Dismiss this view
        dismiss(animated: true, completion: nil)

        if let fileData = try? Data(contentsOf: url) {
            // Here is data of your PDF file
        }

    }

}

这对于文件系统来说是熟悉的,并允许用户访问他们需要的任何文件,只要它们将其存储在云中的某个位置。