Почему я не могу установить currentPreviewItemIndex в qlpreviewcontroller? - PullRequest
1 голос
/ 01 февраля 2020

Я работал над проектом с использованием QuickLook Framework. Я использовал tableview, чтобы показать файлы и использовал предварительный просмотр, чтобы показать их. Я создал QLPreviewController в методе didSelectRowAtIndexPath и попытался установить currentPreviewItemIndex с indexPath.row, чтобы показать файл, который я выбрал. Коды вроде:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // When user taps a row, create the preview controller
    QLPreviewController *previewer = [[QLPreviewController alloc] init];

    // Set data source
    [previewer setDataSource:self];

    // Which item to preview
    [previewer setCurrentPreviewItemIndex:indexPath.row];
    NSLog(@"Tapped Row: %@", [[NSNumber numberWithInt:indexPath.row] stringValue]);
    NSLog(@"The INDEX: %@", [[NSNumber numberWithInt:previewer.currentPreviewItemIndex] stringValue]);

    // Push new viewcontroller, previewing the document
    [[self navigationController] pushViewController:previewer animated:YES];
}

Но в результате он показывает один и тот же файл (первый в списке файлов) независимо от того, какую ячейку я выбираю в табличном представлении. «Tapped Row:» в журнале показывает правильный индекс , но «INDEX:» всегда равен -1 , что, кажется, мне не удалось установить currentPreviewItemIndex.

Что с этим не так? Как правильно установить индекс?

...