2011-03-17 92 views
0

我正在写一个iPhone应用程序,并且有加载,看起来像这样的URL一个UIWebView:更改URL并重新加载UIWebView?

http://www.example.com/search?query=dog 

网站知道使用query=后什么来作为网站上的搜索词。在这种情况下,“狗”。

应用程序中的WebView上方有一个搜索栏,用户可以使用该搜索栏搜索其他内容。因此,如果用户键入“猫”到搜索栏和点击搜索,我要的网址改成这样:

http://www.example.com/search?query=cat 

我不能让它工作,虽然。它不断加载页面,就像我在寻找狗。任何人都可以启发我如何更改URL并刷新WebView?以下是我的代码的样子:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    urlString = @"http://www.example.com/search?query=%i", searchBar.text; 
    [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]]; 
    [self.myWebView reload]; 
    [searchBar setShowsCancelButton:NO animated:YES]; 
} 

回答

3

删除呼叫reload。这完全不需要,可能是你麻烦的原因。

我在想,新URL的请求开始加载,并且在它完成之前刷新已加载的URL来取消加载。这就像点击浏览器中的链接,然后在加载新页面之前按下刷新按钮。你最终会刷新你以前的页面。

+0

你说得对您的网址。这对我来说很愚蠢。谢谢。 – rottendevice 2011-03-17 17:47:49

2

正确撰写您的网址字符串。

urlString =[[NSStrng alloc] initWithFormat:@"http://www.example.com/search?query=%@", searchBar.text]; 
0

取下重装,并创建正确使用stringWithFormat:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    urlString = [NSString stringWithFormat:@"http://www.example.com/search?query=%@", searchBar.text]; 
    [self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]]; 
    [searchBar setShowsCancelButton:NO animated:YES]; 
}