如何默认隐藏 QLPreviewController 上的顶部栏

How to hide top bar on QLPreviewController by default

我正在展示一个 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 预览项目。一旦项目加载到顶部栏中,它就会消失,但效果很刺耳。

有没有什么方法可以默认隐藏这个顶部栏(以黄色突出显示),使其永远不会显示?

是的,你可以,但是在展示 QLPreviewController 之后。以下代码将用于隐藏导航栏,但稍后。

Objective-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
    }
}