0

你好!我正在开发一个应用程序。我正在创建一个 webview。通过使用该网络视图,我想在完成第一个 URL 后加载下一个 URL。我写了- (void)webViewDidFinishLoad:(UIWebView *)webView这样的

- (void)webViewDidFinishLoad:(UIWebView *)webView
   {
      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        alert_View=[[UIAlertView alloc]initWithTitle:@"\n\nData sent successfully!" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil];
        [alert_View show];
        [alert_View release];
      [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(removeAlert:) userInfo:nil repeats:NO];
   }

而 removeAlert 方法看起来像

  -(void)removeAlert:(id)sender
  {
     [alert_View dismissWithClickedButtonIndex:-1 animated:YES];
    [web loadRequest:[arr objectAtIndex:1];
  }

arr数组包含所有准备好的请求。当这个removeAlert方法直接执行时,-(void)webView:didFailLoadWithError:方法就会被触发。所以请告诉我如何在第一个请求结束后加载另一个请求?

4

2 回答 2

1

如果你使用 ARC,你应该去掉[alert_View release]. 警报视图可能不会保留,这可能会导致问题。

另外,尝试[self performSelector: @selector(removeAlert:) withObject:nil afterDelay:3.0];看看这是否有效,而不是您的NSTimer电话。

于 2013-06-21T13:16:18.850 回答
0

一种方法是委托。因此,一旦您的第一个请求得到处理并得到响应,您就可以发送下一个请求。

如果您不熟悉代表,这里有一个链接可以帮助您入门。

于 2013-06-21T09:52:14.400 回答