gpt4 book ai didi

ios - 从另一个 VC 在第二个 VC 上加载 UIWebView

转载 作者:行者123 更新时间:2023-11-29 13:10:33 25 4
gpt4 key购买 nike

我试图在第二个 VC 出现之前加载位于第二个 VC 上的 UIWebView,以减少加载时间延迟。

我尝试了很多不同的方法,但运气不佳。如果我直接从第二个 VC 加载它,我可以让 webview 加载并显示,但存在加载滞后。因此,目前我正在尝试在第一个 VC 中使用 -prepareForSegue 方法预加载 webview。加载发生时没有任何错误,并且按预期发生了 segue,但是 webview 是空白的。

第二个VC上的webview叫做QRWebView。

这是第一个 VC 的代码:

- (IBAction)btnQRWebView:(id)sender {

[self performSegueWithIdentifier: @"segQRWebView" sender: self];
}



- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"segQRWebView"])
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"Terminologyapp" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
QRWebViewController *qrview =segue.destinationViewController;
[qrview.QRWebView loadRequest:request];

}
}

第二个 VC 的代码只是在 viewDidLoad 方法中将 QRWebView.delegate 设置为 self。有什么建议吗?

我尝试使用委托(delegate)协议(protocol)来完成这项工作,但不确定如何将 QRWebView 设置为委托(delegate)。

最佳答案

UIWebView 不会呈现其内容,除非它附加到 UIWindow 实例。但是,它所附加的窗口不需要是可见的。您可以尝试将 webview 附加到 viewDidLoad 中的窗口,这样它不仅可以开始加载其 URL,还可以开始呈现内容。然后,在 viewWillAppear 中,您可以将它重新附加到它在 View Controller View 中的位置。

也就是说,您的应用执行 segue 然后显示 View Controller 所花费的时间非常少,因此这种优化可能不会改善您的情况。

关于ios - 从另一个 VC 在第二个 VC 上加载 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17512317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com