【问题标题】:UIWebView won't load new requestUIWebView 不会加载新请求
【发布时间】:2012-02-22 16:29:13
【问题描述】:

似乎无论我做什么,我都无法让我的 UIWebView 加载新的 URL。它接收到加载请求,但我做的任何事情似乎都没有让它做任何事情。

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    urlToVisit = [self.arrayOfURLs objectAtIndex:[indexPath row]];
    [self dismissModalViewControllerAnimated:YES];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    [WebViewToViewData loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlToVisit]]];
    //[WebViewToViewData stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"location.href='%@''",urlToVisit]];
}

如您所见,我让它从字符串中加载 URL(这是出于测试目的,但它不适用于任何东西)并且它接收到请求,但没有开始加载。我试过了:

[WebViewToViewData reload];

这没有任何作用。我什至无法让重新加载功能在任何地方工作。我可能做错了什么?

【问题讨论】:

    标签: objective-c uiwebview reload


    【解决方案1】:

    您可能需要检查 url 字符串是否包含空格或其他转义字符串并将它们转换为百分比字符串。

    【讨论】:

    • 我已经检查过了,我没有空格或转义字符串。它只是一个 URL。
    【解决方案2】:

    试试这个

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    urlToVisit = [self.arrayOfURLs objectAtIndex:[indexPath row]];
    
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    [WebViewToViewData loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlToVisit]]];
    [self dismissModalViewControllerAnimated:YES];
    
    }
    

    如果没有加载,请直接尝试简单的 url,如 http://www.google.com/,而不是从 Array 中获取字符串转换为 URL 并加载到 webView。

    【讨论】:

    • 我应该早点解释的,对此我很抱歉。模态窗口只是显示一个表格,而 webView 在主视图控制器中。我确实尝试了您推荐的内容,但它仍然没有加载任何内容,即使使用 @"google.com" 而不是数组
    【解决方案3】:

    我觉得你需要定义一个协议来加载 webview。假设您从具有 webview 的主视图控制器中呈现一个视图控制器。在第二个视图控制器中,您只有一个表格视图。您正在尝试从第二个控制器在 mainview 控制器中的 webview 上加载 url。如果所有这些假设都成立,那么您必须为此使用协议声明。

    你也可以试试这个

    在第二个视图控制器.h 文件中

    id delegate;
    
    @property(assign)id delegate;
    

    在.m

    @synthesize delegate;
    
    
    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    
    
    {
    
    
    urlToVisit = [self.arrayOfURLs objectAtIndex:[indexPath row]];
    
    
    
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    
    [(id)delegate performSelector:@selector(loadHTML:) withObject:[NSURL URLWithString:urlToVisit]];
    
    
    [self dismissModalViewControllerAnimated:YES];
    
    
    
    }
    

    在第一个视图控制器实现中,

    -(void)loadHTML:(NSURL *) url{
    
    
    [WebViewToViewData loadRequest:[NSURLRequest requestWithURL:url]];
    
    
    }
    

    【讨论】:

    • 它们在同一个视图控制器中
    • 所以在调用 [self dismissModalViewControllerAnimated] 后你的 webview 不会关闭;因为它在同一个视图控制器中?
    • 我真的不知道。我是 iOS 编程新手。我现在正在将表格转换为它自己的视图控制器。你认为这是问题吗?我可以在 UIWebView 被关闭后看到它,并且可以单击按钮和一切仍然存在。 WebView 只是不加载新页面。
    • 通常它会关闭当前的视图控制器。您只需在主视图控制器之后创建新的 tableviewcontroller。主视图 cllr 包含 webview。在你之前设置委托 [self presentviewcontroller:table animated];
    • 我按照上面的方法做了,我也添加了一个视图控制器。它和以前一样工作。 UIWebView 拒绝加载新页面。
    【解决方案4】:

    我将它设置为模态窗口,我最终将模态窗口更改为不同的动画,以便它会触发 viewDidAppear 并在其中具有该功能。至于来回发送值,我使用了 NSUserDefaults。

    这是迄今为止我遇到的最愚蠢的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多