如何在iphone中的应用程序中点击按钮时打开文件浏览器。它必须显示扩展名为.pdf格式的文件。它必须保存到本地数据库。例如,如果我们想要发送电子邮件给xyz,如果我们要发送文件,我们会附上一些文件。如果我们点击附加文件按钮,它将显示文件资源管理器。如果用户点击一个文件资源管理器,则必须打开文件资源管理器。 iphone中的按钮。请帮我解决这个问题。
答案 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
}
}
}
这对于文件系统来说是熟悉的,并允许用户访问他们需要的任何文件,只要它们将其存储在云中的某个位置。