The webViewDidStartLoad method is called several times.

I have done the following:

header file

UIWebView *itemWebView; 

implementation file

 - (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; } 

Ok, here is what my NSlog looks like:

 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 

Does anyone know why these methods are called multiple times? I used this before, but each method was called only once. This time I can’t understand. Thanks:)

EDIT:

 - (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]; } 
+4
source share
1 answer

Move the initialization code from viewDidLoad to init and check.

+1
source

Source: https://habr.com/ru/post/1379312/


All Articles