Как скрыть верхнюю панель в QLPreviewController по умолчанию

Я представляю контроллер предварительного просмотра QuickLook следующим образом:

 QLPreviewController *qlController = [[QLPreviewController alloc] init];
    qlController.dataSource = self;
    qlController.delegate = self;
    dispatch_async(dispatch_get_main_queue(), ^{
        [rootVC presentViewController:qlController animated:NO completion:nil];
    });

Я передаю ему предварительный просмотр usdz. Как только элемент загружается в верхнюю панель, он исчезает, но эффект резкий.

Есть ли способ скрыть эту верхнюю панель (выделенную желтым) по умолчанию, чтобы она никогда не появлялась?

1 ответ

Решение

Да, можно, но после представления QLPreviewController. Следующий код будет работать, чтобы скрыть панель навигации, но через несколько секунд.

Цель-C:

[self presentViewController:qlController animated:true completion:^{
    UINavigationBar *navBar = [[[[[qlController view] subviews] firstObject] subviews] objectAtIndex:1];
    [navBar setHidden:true];
}];

Swift:

self.present(qlController, animated: true) {
    if let navigationBar = qlController.view.subviews.first?.subviews[1] as? UINavigationBar {
        navigationBar.isHidden = true
    }
}
Другие вопросы по тегам