Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检测所有UIWebView加载完成:目标-C_Ios_Objective C_Uiwebview_Webviewdidfinishload - Fatal编程技术网

Ios 检测所有UIWebView加载完成:目标-C

Ios 检测所有UIWebView加载完成:目标-C,ios,objective-c,uiwebview,webviewdidfinishload,Ios,Objective C,Uiwebview,Webviewdidfinishload,正如标题中提到的,我正在寻找一种方法来检测同时加载HTML字符串的所有UIWebView已完成加载 我有一个自定义视图,其中有5个web视图(1个用于问题,4个用于选项)。它们中的每一个都以如下方式加载html字符串: [queWV loadHTMLString:queHtml baseURL:nil]; [opt1WV loadHTMLString:opt1Html baseURL:nil]; [opt2WV loadHTMLString:opt2Html baseURL:nil]; [opt

正如标题中提到的,我正在寻找一种方法来检测同时加载HTML字符串的所有UIWebView已完成加载

我有一个自定义视图,其中有5个web视图(1个用于问题,4个用于选项)。它们中的每一个都以如下方式加载html字符串:

[queWV loadHTMLString:queHtml baseURL:nil];
[opt1WV loadHTMLString:opt1Html baseURL:nil];
[opt2WV loadHTMLString:opt2Html baseURL:nil];
[opt3WV loadHTMLString:opt3Html baseURL:nil];
[opt4WV loadHTMLString:opt4Html baseURL:nil];
我已尝试使用webViewDidFinishLoad检查此问题

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
     if(webView == opt4WV)
     {
         //All web views has finished loading
     }    
}
但实际上,这是不正确的,因为webViewDidFinishLoad方法被调用用于随机web视图,这取决于要加载的内容

是否有任何方法可以检测所有web视图的加载完成


谢谢

也许我过于简单化了,或者没有看到什么东西,但是您是否尝试将webViewDidFinishLoad与计数器结合使用?因此,如果您有5个web视图,请实现一个从1到5的计数器,并计算webViewDidFinishLoad被调用的次数。到5时,所有视图都将加载

也许我过于简单化了,或者没有看到什么东西,但是您是否尝试将webViewDidFinishLoad与计数器结合使用?因此,如果您有5个web视图,请实现一个从1到5的计数器,并计算webViewDidFinishLoad被调用的次数。到5时,所有视图都将加载

是,使用计数器跟踪并确保所有web视图代理均设置为同一控制器

是,使用计数器跟踪并确保所有web视图代理均设置为同一控制器

声明此函数中的变量“已加载”

int-load=0
-(无效)webViewDidFinishLoad:(UIWebView*)webView
{
如果(网络视图==queWV | |网络视图==opt1WV | |网络视图==opt2WV | |网络视图==opt3WV | |网络视图==opt4WV)
{
加载+=1;
}    
如果(加载==5){
//过程
}
}
声明此函数中的变量“已加载”

int-load=0
-(无效)webViewDidFinishLoad:(UIWebView*)webView
{
如果(网络视图==queWV | |网络视图==opt1WV | |网络视图==opt2WV | |网络视图==opt3WV | |网络视图==opt4WV)
{
加载+=1;
}    
如果(加载==5){
//过程
}

}
在.h文件中创建一个这样的计数器

int webViewLoadCount = 0;
那就这样试试这个柜台

.m文件中的UIWebview委托方法

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = webView.request.URL.absoluteString;

    if ([string rangeOfString:queHtml]) {
        NSLog(@"queWV webview loaded with this  %@ ",queHtml);
        webViewLoadCount = webViewLoadCount + 1;
    } else if ([string rangeOfString:opt1Html]) {
        NSLog(@"opt1WV webview loaded with this  %@ ",opt1Html);
        webViewLoadCount = webViewLoadCount + 1;
    } else if ([string rangeOfString:opt2Html]) {
        NSLog(@"opt2WV webview loaded with this  %@ ",opt2Html);
        webViewLoadCount = webViewLoadCount + 1;
    }else if ([string rangeOfString:opt3Html]) {
        NSLog(@"opt3WV webview loaded with this  %@ ",opt3Html);
        webViewLoadCount = webViewLoadCount + 1;
    }else if ([string rangeOfString:opt4Html]) {
        NSLog(@"opt4WV webview loaded with this  %@ ",opt4Html);
        webViewLoadCount = webViewLoadCount + 1;
    }
}

我希望这将帮助您在.h文件中创建这样一个计数器

int webViewLoadCount = 0;
那就这样试试这个柜台

.m文件中的UIWebview委托方法

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *string = webView.request.URL.absoluteString;

    if ([string rangeOfString:queHtml]) {
        NSLog(@"queWV webview loaded with this  %@ ",queHtml);
        webViewLoadCount = webViewLoadCount + 1;
    } else if ([string rangeOfString:opt1Html]) {
        NSLog(@"opt1WV webview loaded with this  %@ ",opt1Html);
        webViewLoadCount = webViewLoadCount + 1;
    } else if ([string rangeOfString:opt2Html]) {
        NSLog(@"opt2WV webview loaded with this  %@ ",opt2Html);
        webViewLoadCount = webViewLoadCount + 1;
    }else if ([string rangeOfString:opt3Html]) {
        NSLog(@"opt3WV webview loaded with this  %@ ",opt3Html);
        webViewLoadCount = webViewLoadCount + 1;
    }else if ([string rangeOfString:opt4Html]) {
        NSLog(@"opt4WV webview loaded with this  %@ ",opt4Html);
        webViewLoadCount = webViewLoadCount + 1;
    }
}
我希望这将对您有所帮助

可能会有所帮助

取一个
NSInteger计数器全局

viewDidLoad
中初始化
计数器=0

然后

快乐编码…

可能会有帮助

取一个
NSInteger计数器全局

viewDidLoad
中初始化
计数器=0

然后


快乐编码…

您可以使用一些布尔变量来检测每个webview完成加载。是的,我认为我们可以在那里维护计数器或数组,但有时可能会有3或6个webview,取决于选项的数量。有没有其他可靠的方法来实现它?你能得到一次加载多少个webview的确切数字吗?现在,没有。我会检查它。你可以使用一些布尔变量来检测每个webview完成加载。是的,我认为我们可以维护计数器或数组,但有时可能有3或6个webview,D取决于选项的数量。有没有其他可靠的方法来实现它?你能得到一次加载多少个Web视图的确切数字吗?到目前为止,没有。我会检查它。是的,为此我需要跟踪加载的Web视图的数量。是的,为此我需要跟踪加载的Web视图的数量。