重新加载UIWebView

时间:2011-07-01 09:30:03

标签: iphone url uiwebview webview nsurlrequest

我正在使用viewDidLoad中的UIWebView:

webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 88, 320, 400)]; //  init and create the UIWebView
    webView.autoresizesSubviews = YES;
    webView.userInteractionEnabled = NO;
    webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
    [webView  setDelegate:self];//set the web view delegates for the web view to be itself
    NSURLRequest *requestObject = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com"]];//Create a URL object & Set the URL to go to for your UIWebView
    [webView loadRequest:requestObject];//load the URL into the web view.
    [self.view addSubview:webView];//add the web view to the content view
    [webView release], webView = nil;

当我尝试更改页面时,我尝试它无效:

[webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.facebook.com"]]];
[webView reload];

上面的代码位于TabBar按钮的操作中。

**编辑:  当我评论

[webView release], webView = nil;

当我按下按钮时,我可以看到苹果网站,但不能看到facebook!屏幕在苹果网站上令人耳目一新,而不是facebook ... **

感谢帮助; - )

5 个答案:

答案 0 :(得分:4)

您已发布并将webView设置为nil。所以对象不再存在。你正在调用loadRequest并重新加载一个无效的nil对象。

假设您在班级中将webView作为实例变量,请删除行

[webView release], webView = nil;

而是在你的dealloc方法中,否则当你打电话

[webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.facebook.com"]]];

然后你将在一个没有任何作用的零对象上调用它。

答案 1 :(得分:2)

你在哪里尝试这段代码?

[webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.facebook.com"]]];
[webView reload];

您已经发布了webview并将其设为Nil。因此,如果您在加载www.apple.com后执行此操作,它将无法工作。

[webView release], webView = nil;

删除上面的两行,然后尝试。它应该工作。 希望这有帮助。

答案 2 :(得分:1)

我看到的潜在问题是,在将其添加为子视图后,将webView值设置为nil,但在重新加载之前:

 [webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.facebook.com"]]];
 [webView reload];

此处webView为nil ...对象仍然存在(因为它嵌入在视图中),但变量不再指向它,因此消息被忽略。

答案 3 :(得分:1)

无需重新加载

- (void) webViewDidFinishLoad:(UIWebView *)webView
{
     [webView loadRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.facebook.com"]]];
}

这可能会有所帮助.. !!

答案 4 :(得分:0)

阅读您的代码,我猜您的webView在头文件中被声明为@property。在加载Apple站点后释放此对象。我认为这就是它没有加载facebook网站的原因。

[webView release];只能放在- (void) dealloc方法中。

请告诉我它是否有效!