2011-03-23 11 views
6

मैंने UIWebViewDelegate क्लास को परिभाषित किया है और इसे अपने UIWebView की प्रतिनिधि संपत्ति में तुरंत चालू कर दिया है, लेकिन जब वेबव्यू अनुरोध लोड करता है तो कस्टस्टार्ट लोड विधि को कॉल नहीं किया जा रहा है। मैं क्या गलत कर रहा हूं?कस्टम 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(); 

ध्यान दें कि मैं नकल का इस्तेमाल किया है

यहाँ कोड मेरी UIWebViewDelegate और मेरे UIWebView को परिभाषित है/इस कोड नमूने देने के लिए पेस्ट करें, इसलिए यहां कुछ मामूली प्रतिलिपि/पेस्ट त्रुटियां हो सकती हैं, लेकिन मेरा कोड संकलित हो रहा है और वेबव्यू अनुरोध लोड करता है; यह सिर्फ क्विकस्टार्ट लोड जिसे कॉल नहीं किया जा रहा है।

क्या किसी को पता है कि मैं यहां क्या गलत कर रहा हूं?

उत्तर

10

मैं इस प्रकार का वेब दृश्य के ShouldStartLoad संपत्ति का उपयोग करके इस हल:

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

मैं miguel.de.icaza's जवाब से प्रश्न पोस्ट करने के लिए इस सवाल का जवाब मिल गया here

संबंधित मुद्दे