我有一个UIWebView(webview1)在其中的UIViewController。网络视图只有几行文字,但确实有一个链接。在这个小小的空间里,我不想打开链接到外部网站,而是将它发送到webview2,这将是一个全屏。目标是将Web请求保留在我的应用程序中而不是Safari中。我不想为webview2创建另一个控制器,而是想使用webview1的控制器。将webview请求扔到另一个webview
在Webview1Controller控制器,我为此在webViewLoad:
webview1.delegate = self;
这里就是我的手离开网络请求webview2,工作正常:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
myapp *delegate = [[UIApplication sharedApplication] delegate];
Webview1Controller *webview1Controller = [[Webview1Controller alloc] initWithNibName:@"webview2" bundle:nil];
//self.view = webview2;'
[delegate.navigationController pushViewController: webview1Controller animated:YES];
[webview1Controller.webview2 loadRequest:request];
[webview1Controller release];
return YES;
}
在界面生成器,我有webview2 .xib文件的所有者类设置为Webview1Controller。这是“查看”和webview2outlet连接。我在Webview1Controller中有一个名为webview2outlet的IBOutlet。
当我回到webview1时,它也加载了相同的请求。有没有办法阻止webview1加载任何东西?如果我在上面的方法中返回NO,那么webview1将不会呈现我的内容。
一个解决方案就是重新加载viewWillAppear上的webview1内容,它可以工作。但是有更好的方法吗?
请参阅下面的注释。 – 4thSpace 2009-04-20 18:25:29
查看编辑答案 - 发表评论有点长。 – 2009-04-20 18:37:12