我点击它时MainViewController.xib中有一个按钮我在MainViewController.m中有一个方法需要更改webview的url我试着这样做:
- (IBAction)buttonPressed
{
NSString * url = @"http://www.google.com";
NSURL * urlRedirect = [NSURL URLWithString:url];
NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:2000.0];
[self loadRequest:lRequest];
}
我得到了一个例外
然后我尝试在didFailLoadWithError
中执行此操作- (void) webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
{
NSString * url = @"https://www.google.com";
NSURL * urlRedirect = [NSURL URLWithString:url];
NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:2000.0];
[theWebView loadRequest:lRequest];
}
但我进入了这种方法的循环......
如何通过浏览webview上的按钮来更改网址?
答案 0 :(得分:1)
问题是你是将loadRequest消息发送到你的viewController(self),(因为它没有响应这个选择器而得到一个异常)。您需要将此消息发送到您的webView。如果你有一个插座发送它。不过你可以尝试:
- (IBAction)buttonPressed
{
NSString * url = @"http://www.google.com";
NSURL * urlRedirect = [NSURL URLWithString:url];
NSURLRequest *lRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:2000.0];
for (UIView *view in self.view.subviews)
{
if ([view isKindOfClass:[UIWebView class]])
{
UIWebView *webView = (UIWebView *)view;
[webView loadRequest:lRequest];
}
}
}
删除第二个选项。