开发者

reload a UIWebView

I'm using a UIWebView like that in the viewDidLoad:

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;

When I try to change the page, I try that BUT it doesn't working :

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

The code that's just above is in the action of a TabBar button.

**EDIT : When I commen开发者_JAVA技巧t

[webView release], webView = nil;

I can see the apple website but not facebook when I push the button! The screen is refreshing in the apple website and not facebook...**

Hundred of thanks to help ;-)


You've released and set your webView to nil. So the object no longer exists. You are calling loadRequest and reload on a nil object which will do nothing.

Assuming you have webView as an instance variable in your class, remove the line

[webView release], webView = nil;

and instead put that in your dealloc method otherwise when you call

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

then you will be calling it on a nil object which will do nothing.


Where did you try this code ?

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

You already released webview and make it Nil. So it will not work if you did it after it loads www.apple.com.

[webView release], webView = nil;

Remove above two lines once and then try. It should work. Hope this help.


The potential problem I see is that you are setting the webView value to nil after adding it as subview, but before doing the reload:

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

here webView is nil... the object still exists (because it is embedded in a view), but the variable does not point to it anymore, so messages are simply ignored.


no need of reload

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

this may help..!!


Reading your code, I guess that the your webView is declared as @property in the header file. You release this object after the Apple site is loaded. I think that's the reason why it doesn't load the facebook website.

The [webView release]; should be placed within the - (void) dealloc method only.

Please let me know if it works!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜