If you're trying to "reuse" an existing UIWebView, and disable the ability to go back to whatever previous page it was in before, you can:
When loading the new request (the one that user shouldn't go back from), save the URL of the new request, say like:
self.curURL = [NSURL urlWithString:@"http://www.bla.com"];
[webview loadRequest:[NSURLRequest requestWithURL:curURL]];
I'm guessing you have your own back button, so on your webViewDidFinishLoad delegate method, add:
backbttn.enabled = webView.canGoBack && ![[webView.request URL] isEqual: curURL];
This way, the user won't even know that the UIWebView can go back to the page before.
I was successful (as far as you can call such a workaround 'successful') using the following line of code:
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"if( window.history.length > 1 ) { window.history.go( -( window.history.length - 1 ) ) }; window.setTimeout( \"window.location.replace( '%@' )\", 300 );", targetLocation]];
where targetLocation is the desired URL as a NSString.
What it does is to tell the browser to go as far backwards as the history goes and then, after a short timeout, load the desired URL.
This of course does not solve the problem of clearing the forward going history (which I didn't need in my case).
Just recreate the webview. it would reset everything including history.