【问题标题】:iPhone - UIWebView not loading first requestiPhone - UIWebView 未加载第一个请求
【发布时间】:2011-03-02 19:19:57
【问题描述】:

我有一个带有一些项目的 TableViewController,每个项目在按下时都会推送一个带有 UIWebView 的 ViewController,ViewController 在所有情况下都是相同的,但是每个项目都要求 webView 加载不同的 URL。现在的问题是,当我第一次选择一个项目时,webView 不会加载 URL,但是如果我返回导航控制器然后再次按下任何项目(甚至与第一次相同),它正确加载。为什么会这样?

这是我的代码。在我的 TableViewController 中,我在 didSelectRowAtIndexPath 中有这个:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {     
 NSString *urlAddress;
 NSInteger row = [indexPath row];

 // SELECT THE URL BASED ON THE SELECTED ROW. SECTION OMMITED FOR CLARITY PURPOSES.
    urlAddress = @"http://www.google.com";

 [browserViewController refreshUrl:urlAddress];
 [urlAddress release];

 browserViewController.title = [NSString stringWithFormat:@"%@", [itemsArray objectAtIndex:row]];

 MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
 [delegate.mainNavController pushViewController:browserViewController animated:YES]; }

browserViewController 在 TableViewController 的 viewDidLoad 方法中初始化。在 BrowserViewController 实现中我有这个方法:

- (void) refreshUrl: (NSString *)theUrlAddress{
 NSURL *url = [NSURL URLWithString: theUrlAddress];
 NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
 [webView loadRequest:requestObj];}

但这种方法似乎只在第二次被调用时才起作用。如果我在它上面设置一个断点,我可以看到它实际上是在我第一次按下桌子上的项目时被调用的,但是 loadRequest 什么都不做。

BrowserViewController 也是一个 UIWebViewDelegate。 webViewDidStartLoad 和 webViewDidFinishLoad 方法也不是第一次被调用。

关于为什么以及如何解决它的任何想法?谢谢!

【问题讨论】:

    标签: iphone xcode uiwebview


    【解决方案1】:

    在 viewController 创建 UIWebView 之前,您正在使用 refreshUrl。
    使用断点并检查 webview 的值。我认为这是第一次为零。

    只需将[browserViewController refreshUrl:urlAddress]; 移动到推送后的行。

    【讨论】:

    • 太棒了!这正是问题所在!现在它正在工作,非常感谢!
    • 即使这样也可能很快。在访问 outlets 之前,您必须确保 VC 已经加载。
    • 我不得不从 viewDidAppear 中调用加载 URL 方法。从 viewDidLoad 和 viewWillAppear 来看,错误经常出现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多