2013-08-27 7 views
7

नहीं कहा जाता है मैंने शोध किया है और शोध किया है और अभी भी समझ में नहीं आता है कि क्यों StStartLoadWithRequest को कभी नहीं कहा जाना चाहिए। मेरा पृष्ठ ठीक लोड करता है और UIWebview प्रतिनिधि प्रोटोकॉल विधियों में से कुछ को बुलाया जाता है।shouldStartLoadWithRequest को कभी भी

@implementation PortViewController 

@synthesize WebView = myWebView; 

मैं अपने वेबव्यू सफलतापूर्वक लोड:: मेरे मीटर (एक हेडर फाइल में परिभाषित) में अपने वेबव्यू सिंथेसाइज़

: नीचे मेरी कोड से प्रासंगिक के टुकड़े को खोजने के लिए कृपया

myURLString = [NSString stringWithFormat:@"https://%@", defaultWebsite]; 

    myURL = [NSURL URLWithString: myURLString]; 
    NSURLRequest *myRequest = [NSURLRequest requestWithURL:myURL]; 
    [myWebView loadRequest:myRequest]; 

सेट मेरी स्वयं को प्रतिनिधि

- (void)viewDidLoad 
{ 


[super viewDidLoad]; 
[myWebView setOpaque:NO]; 
[myWebView setBackgroundColor:[UIColor clearColor]]; 

//myWebView.description. 

myWebView.delegate = self; 
} 

मेरे सभी प्रोटोकॉल विधियों को EXCEPT shouldStartLoadW कहा जाता है ithRequest

- (void)webViewDidStartLoad:(UIWebView *)myWebView { 
    [activityIndicator startAnimating]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)myWebView { 
    [activityIndicator stopAnimating]; 
} 

- (BOOL)WebView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request   navigationType:(UIWebViewNavigationType)navigationType { 

NSLog(@"inside Webview"); 
if([[request.URL absoluteString] hasPrefix:@"http://www.nzx"]) { 
    // do stuff 
    NSLog(@"Have caught the prefix"); 
    return YES; 
} 

    return NO; 
} 

अग्रिम धन्यवाद।

+1

क्या यह एक टाइपो है या आपने वास्तव में गलत विधि लागू की है 'WebView: shouldStartLoadWithRequest: नेविगेशन टाइप: '? 'डब्ल्यू' छोटा मामला 'वेब व्यू' होना चाहिए। – Amar

उत्तर

1

प्रतिनिधि विधि होना चाहिए:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

और अगर आप xib में UIWebView है, तो शायद आप अनुरोध लोड करने के लिए जब UIWebView

नहीं के बराबर है तो सुनिश्चित करें कि आपके myWebView उदाहरण मौजूद है कोशिश कर रहे हैं।

+2

यह रास्ता कमजोर 'डब्ल्यू' धन्यवाद था। मैं कुछ चश्मा खरीदने के लिए बंद हूँ। – user2720747

+0

यही कारण है कि "स्वतः पूर्ण"। पल से आपने घोषणा की है कि आपकी कक्षा कुछ प्रोटोकॉल का समर्थन करती है, आप केवल उस प्रतिनिधि – Injectios

13

ViewWillAppear बजाय viewDidLoad

-(void)viewWillAppear:(BOOL)animated 
{ 
    myWebView.delegate = self; 
} 

में प्रतिनिधि सेट करके देखें और फ़ाइल

@interface PortViewController()<UIWebViewDelegate> 


@end 

यह काम करना चाहिए PortViewController.m के अपने इंटरफेस में वेबव्यू प्रतिनिधि शामिल हैं।

+0

धन्यवाद के लिए स्वत: पूर्णता के साथ विधियों को टाइप करने में सक्षम हैं !! उत्कृष्ट उत्तर। आप PortViewController() को इंटरफ़ेस सेट करने की आवश्यकता नहीं होने के द्वारा इसे सरल बना सकते हैं। –

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