2011-03-23 16 views
6

我已經定義了一個UIWebViewDelegate類並在我的UIWebView的Delegate屬性中實例化了它,但是當webview加載請求時不會調用ShouldStartLoad方法。我究竟做錯了什麼?當UIWebView請求開始加載時,不會調用自定義UIWebViewDelegate的ShouldStartLoad

這裏是定義我的UIWebViewDelegate和我的UIWebView代碼:

public class MyWebViewDelegate: UIWebViewDelegate 
{ 
    private UIWebView _view; 
    public MyWebViewDelegate (UIWebView view) 
    { 
     _view = view; 
    } 
    public override bool ShouldStartLoad (UIWebView webView, 
              MonoTouch.Foundation.NSUrlRequest request, 
              UIWebViewNavigationType navigationType) 
    { 
     System.Console.WriteLine("Starting load"); 
     return true; 
    } 
} 

public class MyWebView : UIWebView 
{ 
    private static MyWebView _instance = new MyWebView(); 
    private MyWebView() : base() 
    { 
     this.Delegate = new MyWebViewDelegate(this); 
    } 
    public static MyWebView Instance { 
     get { return _instance; } 
    } 
    public void Load() 
    { 
     this.LoadRequest (new NSUrlRequest(NSUrl.FromString("http://myurl"), 
          NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData, 
          5) 
         ); 
    } 
} 

在我的appdelegate我然後做下面的FinishedLaunching方法:

// Create form view controller 
viewControllerForm = new UIViewController(); 
viewControllerForm.View = MyWebView.Instance; 
viewControllerForm.Title = Localization.Translate("Forms"); 

// Load webview 
MyWebView.Instance.Load(); 

請注意,我用的副本/粘貼給這個代碼示例,所以這裏可能會有一些小的複製/粘貼錯誤,但我的代碼正在編譯,並且webview加載請求;它只是沒有被調用的應該啓動加載的

有沒有人有任何想法我在做什麼錯在這裏?

回答

10

我解決了這個通過使用web視圖的ShouldStartLoad屬性如下:

myView.ShouldStartLoad = (webView, request, navType) => { 
    // Determine here what to do 
} 

我得到了這個答案從miguel.de.icaza's答案張貼的問題here

相關問題