UIWebview正在关闭加载网址

时间:2012-11-03 17:31:25

标签: xcode uitableview uiwebview nsstring

所以我有一个奇怪的方法在我正在制作的浏览器应用程序中的UIWebView中加载书签。对于书签UITableView中的didSelectRowAtIndexPath,我有以下代码:

NSUserDefaults *lString = [NSUserDefaults standardUserDefaults];
[lString setValue:[bookmarks objectAtIndex:indexPath.row] forKey:@"loString"];

然后我将UITableView中所选对象的模态转换为另一个基于此代码加载UIWebView的视图控制器。所以问题是我第一次点击表视图对象时,UIWebview是空白的,然后第二次显示我第一次点击的URL。请帮忙! 谢谢, 迈克尔

- (void)viewDidLoad
{
[super viewDidLoad];
NSUserDefaults *lString = [NSUserDefaults standardUserDefaults];
loadString = [lString valueForKey:@"loString"];
NSURL *url = [[NSURL alloc] initWithString:loadString];
NSURLRequest *togo = [[NSURLRequest alloc] initWithURL:url];
[webView loadRequest: togo];

// Do any additional setup after loading the view.
}

1 个答案:

答案 0 :(得分:0)

-loadRequest方法是异步的,这意味着它会在主线程的执行继续时在另一个线程中启动加载。

因此,第一次调用时,它显示一个空白屏幕(因为第一个请求仍在另一个线程中运行)。第二次,因为第一个请求现在已经完成,它显示(而第二个请求在另一个线程中运行)。等等。

要在加载后立即使用URL内容刷新屏幕,您需要实现UIWebViewDelegate的-webViewDidFinishLoad方法。在该方法中,您知道URL已完成加载,因此如果您刷新Web视图,则应显示内容。