UIWebView:在标签界面中加载请求的位置? viewDidLoad还是viewDidAppear?

时间:2011-08-15 00:22:30

标签: uiwebview viewdidload tabbarcontroller viewdidappear

我有一个标签栏控制器,一个标签屏幕包含一个网页视图,加载一个请求说google.com,当它正在加载时(即在webview的didload委托方法调用之前),如果我切换到另一个标签然后回过头来,微调器仍然在运行,但页面永远不会被加载,我猜viewDidLoad只被调用一次,所以我应该将加载代码放在viewDidAppear中,还是要解决这个问题呢?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不明白为什么每次出现时都要刷新WebView。但请使用- (void)viewWillAppear:animated

编辑:

好的,既然我现在有更多信息,我可以给你更多信息!

在你的.h:

BOOL *loaded

你的.m中的

- (void)viewWillAppear:animated {
     if (loaded == NO) {
         //load the website
     }
 }


- (void)webViewDidFinishLoad:(UIWebView *)webView { 
     [loaded setBool:YES];
 }


- (IBAction)loadWebsite {
    //if the user reloads or loads a new website do this:
    [loaded setBool:NO];
    //reload, or load the new website
}

加载或重新加载UITableView:

 NSString *urlAddress = urltextfield.text;
 NSURL *url = [NSURL URLWithString:urlAddress];
 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
 [webView loadRequest:requestObj];

澄清:如果加载了View,我将BOOL设置为YES,因此当webview完成加载并且用户切换到另一个选项卡,然后返回WebView时不会重新加载。但是如果WebView未完全加载,BOOl将返回NO,WebView将重新加载!当重新加载WebView或加载新网站时,我将BOOL设置为NO,并且循环遍历!请注意,BOOls默认为NO。