简体   繁体   English

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

[英]How to hide top bar on QLPreviewController by default

I am presenting a QuickLook preview controller like so: 我正在展示一个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];
    });

I'm passing it a usdz preview item. 我通过了一个usdz预览项目。 As soon as the item loads in the top bar it disappears but the effect is jarring. 一旦项目加载到顶部栏中,它就会消失,但效果会震撼。

Is there any way to hide this top bar (highlighted in yellow) by default so it never shows up? 有没有办法默认隐藏顶部栏(以黄色突出显示),使其永远不会显示?

在此处输入图片说明

Yes you can, but after presenting QLPreviewController . 是的,您可以,但是在呈现QLPreviewController Following code will works to hide navigation bar, but after few moment. 以下代码可用于隐藏导航栏,但稍后。

Objective-C: 目标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
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM