更改URL并重新加载UIWebView?

时间:2011-03-17 17:28:17

标签: iphone objective-c ios

我正在编写一个iPhone应用程序,并且有一个UIWebView可以加载如下所示的URL:

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

网站知道使用query=之后的任何内容作为网站上的搜索字词。在这种情况下,“狗”。

应用程序中的WebView上方有一个搜索栏,用户可以使用该搜索栏搜索其他内容。因此,如果用户在搜索栏中键入“cat”并点击搜索,我希望URL更改为:

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 个答案:

答案 0 :(得分:3)

取消对reload的通话。这完全不需要,可能是你麻烦的原因。

我认为新网址的请求开始加载,在完成之前,它会刷新已加载的网址,取消加载。这就像点击浏览器中的链接,然后在加载新页面之前按下刷新按钮。您最终会刷新之前的页面。

答案 1 :(得分:2)

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

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

答案 2 :(得分: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];
}