我正在使用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 ... **
感谢帮助; - )
答案 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
方法中。
请告诉我它是否有效!