Frissítés nézet után UIBarButtonItem kattintanak

szavazat
1

Van egy frissítés gombot én navigationbar

buttonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(buttonItemClicked)];
    self.navigationItem.rightBarButtonItem = buttonItem;
-(void)buttonItemClicked{
    NSLog(@buttonItemclicked);
    myView.labelName.text = nil;
    myView.otherLabelName.text = nil;
    [spinner startAnimating]
    [spinnerView setHidden:NO];
    [self requestAPI];
    [spinner stopAnimating];
    [spinnerView setHidden:YES];
  }

Ha megyek, és ki az a véleménye, ez jól működik. De amikor hívom azonos módszerekkel buttonItemClicked, akkor doesn't munkát. Én is próbáltam felhívni a nézet mód belülről a cselekvési módszer, de ez doesn't munka sem.

Mit akarok próbál tenni beállítani a címkéket nulla volt, add meg UIActivityIndicatorView, és vegye el azt a címkét újra beállítani.

Már kipróbáltam [self.view setNeedsDisplay];

A frissítési magától működik, de az animációk doesn't munkát.

Valami javaslat?

A kérdést 12/06/2011 13:09
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Próbálja [myView setsNeedToDisplay];.

Válaszolt 12/06/2011 13:36
a forrás felhasználó

szavazat
0

Az animáció nem működik, mert a hívás startAnimating és stopAnimating (és setHidden) ugyanazzal a módszerrel. A vakolat végén kezdődik a módszer hívást. Be kell állítani

[spinner stopAnimating];
[spinnerView setHidden:YES];

a requestAPI.

edit:

Használata Grand Central Dispatch. Mint:

- (void)buttonItemClicked {
  myView.labelName.text = nil;
  myView.otherLabelName.text = nil;
  [spinner startAnimating]
  [spinnerView setHidden:NO];
  [self requestAPI];
}

- (void)requestAPI {
  dispatch_async(dispatch_get_global_queue(0, 0), ^{
    NSURL *url = [NSURL URLWithString:@"http://example.com"];
    NSData *data = [NSData dataWithContentsOfURL:url];
    NSString *stringResult = [[NSString alloc] initWithData:data
                                                   encoding:NSUTF8StringEncoding];
    dispatch_async(dispatch_get_main_queue(), ^{
      [spinner stopAnimating];
      [spinnerView setHidden:YES];

      myView.labelName.text = stringResult;
    });

  });
}
Válaszolt 12/06/2011 14:07
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more