загрузка webView не вызывается - PullRequest
0 голосов
/ 18 декабря 2011

Я загружаю страницу, нажимая на ячейку табличного представления.Я помещаю оператор if:

       if ([webViewController webView].loading == YES) {

    NSLog(@"Its loading!");

    if (act == nil) {
        NSLog(@"Its nil");

act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        act.color = [UIColor blackColor];

    } else {

        act.hidden = NO;
    }

    act.center = self.view.center;
    [act startAnimating];


} else {

    [act stopAnimating];
    [act setHidden: YES];
}

Но NSLog никогда не появляется, поэтому он никогда не вызывается.Но когда я развернул его на своем iPhone, потребовалось ДЛИННОЕ ВРЕМЯ для загрузки, но он все равно никогда не вызывался.Что здесь происходит?

ОБНОВЛЕНИЕ - SORROUNDING CODE

  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSLog(@"TOUCHED CELL!");

// Push the web view controller onto the navigation stack - this implicitly 
// creates the web view controller's view the first time through
[[self navigationController] pushViewController:webViewController animated:YES];

// Grab the selected item
RSSItem *entry = [[channel items] objectAtIndex:[indexPath row]];

// Construct a URL with the link string of the item
NSURL *url = [NSURL URLWithString:[entry link]];

// Construct a request object with that URL
NSURLRequest *req = [NSURLRequest requestWithURL:url];



// Load the request into the web view 
[[webViewController webView] loadRequest:req];

if ([webViewController webView].loading == YES) {

    NSLog(@"Its loading!");

    if (act == nil) {
        NSLog(@"Its nil");

act = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
        act.color = [UIColor blackColor];
        act.center = self.view.center;
        [self.view addSubview:act];

    } else {

        act.hidden = NO;
    }

    act.center = self.view.center;
    [act startAnimating];


} else {

    [act stopAnimating];
    [act setHidden: YES];
}

webViewController = nil;
webViewController = [[WebViewController alloc] init];

  }

1 Ответ

2 голосов
/ 18 декабря 2011

Я не уверен, что вы пытаетесь сделать здесь. Если вы хотите отображать индикатор активности во время загрузки веб-представления, вы должны поместить этот код в webViewController. (Контроллер представления, в котором находится ваш код, в любом случае не будет виден после нажатия на контроллер представления в Интернете.)

Убедитесь, что webViewController является делегатом webView, а затем переопределите webViewDidStartLoad: и webViewDidFinishLoad: (и webView: didFailLoadWithError :), чтобы отобразить и скрыть индикатор активности.

...