Я сделал нечто подобное с моим приложением IOS.Поскольку IOS не имеет (я думаю) файлового браузера, и вам, в целом, разрешено использовать папку «Документы» вашего приложения, только когда он нажимает, чтобы прикрепить файл, я открываю 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.Если вы хотите сделать это как файловый браузер, покажите каталоги и дайте пользователю рекурсивно просматривать файлы в каталогах.Источник данных моей таблицы:
- (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;
}
Надеюсь, это поможет вам