2011-11-02 59 views
4

我也做了以下內容:webViewDidStartLoad方法被調用多次

頭文件

UIWebView *itemWebView; 

實現文件

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    itemWebView = [[UIWebView alloc] initWithFrame:self.view.bounds]; 
    itemWebView.delegate = self; 

    NSURL *url = [NSURL URLWithString:targetString]; 
    NSURLRequest *requestObject = [NSURLRequest requestWithURL:url]; 

    [itemWebView loadRequest:requestObject]; 
    [self.view addSubview:itemWebView]; 
    [itemWebView release]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (BOOL) webView:(UIWebView *)_webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType:(UIWebViewNavigationType)navigationType { 
    NSLog(@"ItemLoadinglViewController - shouldStartLoadWithRequest"); 

    loadingView.hidden = NO; 
    itemWebView.hidden = YES; 
    return YES; 
} 

- (void) webViewDidStartLoad: (UIWebView *) _webView { 
    NSLog(@"ItemLoadinglViewController - webViewDidStartLoad"); 


} 

- (void) webViewDidFinishLoad: (UIWebView *) _webView { 
    NSLog(@"ItemLoadinglViewController - webViewDidFinishLoad"); 

    loadingView.hidden = YES; 
    itemWebView.hidden = NO; 

} 

嗯,這是我的NSlog的樣子:

ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - webViewDidFinishLoad 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - webViewDidFinishLoad 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - webViewDidFinishLoad 
ItemLoadinglViewController - shouldStartLoadWithRequest 
ItemLoadinglViewController - webViewDidStartLoad 
ItemLoadinglViewController - webViewDidFinishLoad 

有沒有人有任何想法爲什麼這些方法被調用多次?我用這個之前,但被稱爲每種方法只once.Why不同,這一次我不out.Thanks :)

編輯:

- (void) itemPressed:(id)sender{ 
    int x = [sender tag]; 

    ItemLoadingViewController *itemLoadingViewController = [[ItemLoadingViewController alloc] init]; 
    itemLoadingViewController.targetString = [target objectAtIndex:x]; 
    [self.navigationController pushViewController:itemLoadingViewController animated:YES]; 
    [itemLoadingViewController release]; 
} 
+0

你可以展示你如何加載視圖控制器,它看起來像視圖加載被稱爲多一次。 – shannoga

+0

也有可能您的網址使用重定向?這可以解釋爲什麼webview加載多次 – Zoleas

+1

我編輯我的問題與code.please看看! – adrian

回答

1

從viewDidLoad中移動你的初始化代碼初始化&檢查。