Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.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 获取2个uiwebview';然后放到他们自己的地址栏上_Ios_Xcode_Uiwebview_Uiwebviewdelegate - Fatal编程技术网

Ios 获取2个uiwebview';然后放到他们自己的地址栏上

Ios 获取2个uiwebview';然后放到他们自己的地址栏上,ios,xcode,uiwebview,uiwebviewdelegate,Ios,Xcode,Uiwebview,Uiwebviewdelegate,在我的应用程序中,我有两个UIWebView和两个地址栏,分别称为WebView和WebView2、WebAddress和WebAddress2。我需要从WebView获取url并将其放到WebAddress,从WebView2获取url并将其放到WebAddress2 当我使用这段代码时,URL更新只出现在第一个WebAddress中,WebView2中的URL也出现在第一个WebAddress中。此外,WebView2中的所有页面开始在WebView中加载 - (BOOL)webVi

在我的应用程序中,我有两个UIWebView和两个地址栏,分别称为WebView和WebView2、WebAddress和WebAddress2。我需要从WebView获取url并将其放到WebAddress,从WebView2获取url并将其放到WebAddress2

当我使用这段代码时,URL更新只出现在第一个WebAddress中,WebView2中的URL也出现在第一个WebAddress中。此外,WebView2中的所有页面开始在WebView中加载

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                [webAdress setText:[URL absoluteString]];
                [self gotoAddress:nil];
            }    
            return NO;
        }   
        return YES;   
    }

- (BOOL)webView2:(UIWebView*)webView2 shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                [webAdress2 setText:[URL absoluteString]];
                [self gotoAddress2:nil];
            }    
            return NO;
        }   
        return YES;   
    }

我想您只需要一个委托方法。检查哪个webview触发了此委托方法,并根据以下内容执行操作:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            if ([[URL scheme] isEqualToString:@"http"]) {
                if (webView == webView1)
                     [webAdress setText:[URL absoluteString]];
                if (webView == webView2)
                     [webAdress2 setText:[URL absoluteString]];
                [self gotoAddress2:nil];
            }    
            return NO;
        }   
        return YES;   
    }

只需将所有web视图的代理设置为self,您就可以使用此方法处理所有操作。

我为WebView、WebView2、WebAddress、WebAddress2设置了代理出口。当我尝试使用您的代码时,xcode会给我错误。在这一行如果(webView==webView1)2错误:“webView”的本地声明隐藏实例变量和未声明标识符“webView1”的使用,在这一行如果(webView==webView2)它说“webView”的本地声明隐藏实例变量,则只需将提供的方法中的参数重命名为其他名称。而不是
webView
。因为您没有webView 1)。重命名它。