webViewDidStartLoad方法被多次调用 [英] webViewDidStartLoad method gets called multiple times

查看:87
本文介绍了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

有人知道为什么多次调用这些方法吗?我以前用过,但是每个方法只被调用过一次.为什么这次不一样,为什么我不知道呢.谢谢:)

Has anyone any idea why these methods get called multiple times? I've used this before but each method was called only once.Why is different this time I can't figure 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];
}

推荐答案

将初始化代码从viewDidLoad移至init&查看.

Move your initialization code from viewDidLoad to init & check.

这篇关于webViewDidStartLoad方法被多次调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆