我想要的功能是这样的:
我有一组 URL,我想将它们加载到现有的 UIWebView 中,而无需推入新的 ViewController。我只希望 webView 在没有动画或滑动的情况下重新加载。
现在,这是我在 ViewController 中的实现:
@synthesize webView;
@synthesize requestObj;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
//I show a spinner while it is loading. This is done in webViewDidStartLoad:
viewLoading = YES;
//this is landing URL, so I draw some buttons in viewDidLoad
home = YES;
//I load this request into my webView in viewDidLoad
requestObj = [NSURLRequest requestWithURL:[NSURL URLWithString:myURL]];
}
return self;
}
然后,在 ViewController 的某个地方,如果有人在我的滑动菜单中按下特定的 URL,我会调用:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:newUrl]];
[webView loadRequest:request];
如果没有将新版本的 ViewController 推入堆栈,我无法弄清楚如何将这个新 URL 加载到令人兴奋的 webView 中。每次它在 ViewController 中调用我的 initWithNibName: 方法时,我都想不出一个好的方法来阻止它把自己推到堆栈上,而只是更新 webView。
我可以使用 [self.navigationController setViewControllers:] 来制作一个新的 ViewController 并阻止控制器绘制 backButton,但它仍然在滑动。
必须有一种简单的方法来重新加载我只是没有得到的 webView。有什么建议么?