【问题标题】:Multiple UIWebViews, how do I track webViewDidFinishLoad for both?多个 UIWebViews,我如何跟踪两者的 webViewDidFinishLoad?
【发布时间】:2011-07-30 01:03:39
【问题描述】:

我试过了:

- (void) webViewDidFinishLoad:(UIWebView *)webView1{

}
- (void) webViewDidFinishLoad:(UIWebView *)webView2{

}

错误是我无法重新定义相同的方法。

如果我必须使用相同的方法,我需要找出某种方法来识别一个 webView 和另一个,我该怎么做?

干杯

【问题讨论】:

    标签: objective-c uiwebview uiwebviewdelegate


    【解决方案1】:
    - (void) webViewDidFinishLoad:(UIWebView *)webview{
         if ( webview == self.webview1 )
         {
              // in case of webview 1
         } else if ( webview == self.webview2 ) {
              // in case of webview 2
         } else {
              NSLog(@"webview %@ was not wired to a property of %@",webview,self);
         }
    }
    

    并将 webview1 和 webview2 作为属性添加到您的控制器。 (即您需要@property 行和@synthesize 行)

    【讨论】:

      【解决方案2】:

      - (void) webViewDidFinishLoad:(UIWebView *)webView 传递一个 webview 的原因是为了让你知道哪个 webview 完成了加载。你有几个选择。

      1. 为 webview1 和 webview2 创建类变量并将其与 webview 进行比较。
      2. 标记网络视图,以便您知道是哪一个

      1.

      //SomeController.h
      @interface SomeController : UIViewController
          UIWebView *webView1;
          UIWebView *webView2;
      @end
      
      //SomeController.m
      ...
      - (void) webViewDidFinishLoad:(UIWebView *)webView
      {
          if(webView == webView1) { ... }
          else if(webView == webView2) { ... }
      }
      ...
      

      2.

      -(void)viewDidLoad
      {
          webView1.tag = 1;
          webView2.tag = 2;
      }
      
      - (void) webViewDidFinishLoad:(UIWebView *)webView
      {
          if(webView.tag == 1) { ... }
          else if(webView.tag == 2) { ... }
      }
      

      【讨论】:

        【解决方案3】:

        当您以编程方式创建它们或从 Interface Builder 为它们添加出口时,您需要保留对它们的引用。这样,您将拥有实例变量,您可以将其与webView 方法参数进行比较,以查看哪个已完成加载。你只需要一种方法,你可能想read up on the subject

        - (void)webViewDidFinishLoad:(UIWebView *)webView
        {
           if (webView == webView1)
           {
              // handle webView1's loading
           }
           else if (webView == webView2)
           {
              // handle webView2's loading
           }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-10-28
          • 1970-01-01
          • 1970-01-01
          • 2014-08-09
          • 1970-01-01
          • 1970-01-01
          • 2022-11-12
          • 2021-02-21
          相关资源
          最近更新 更多