У меня есть UITableview с панелью навигации вверху.У меня есть кнопка обновления как rightBarButtonItem.
Когда нажата кнопка обновления, я хочу скрыть кнопку обновления, перезагрузить таблицу и отобразить представление оповещения.
-(void)refreshClicked{
self.navigationItem.rightBarButtonItem=nil;
app.networkActivityIndicatorVisible = YES;
[appDelegate readJSONData];
[self.tableView reloadData];
UIAlertView *infoAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"Kampanjerna är nu uppdaterade" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[infoAlert show];
[infoAlert release];
}
Я обнаружил, что когда мой сигнал Wi-Fi становится слабее, кнопка обновления не скрывается сразу и возникает задержка.Боюсь, что при использовании 3G будут дальнейшие задержки, и пользователь может снова нажать кнопку обновления, думая, что в первый раз она не была нажата.
Есть ли проблемы со мной, код?
Помощь будет оценена
РЕДАКТИРОВАТЬ -----------
-(void)refreshClicked{
self.navigationItem.rightBarButtonItem=nil;
app.networkActivityIndicatorVisible = YES;
// do data processing in the background
[self performSelectorInBackground:@selector(doBackgroundProcessing) withObject:self];
UIAlertView *infoAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"Kampanjerna är nu uppdaterade" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[infoAlert show];
[infoAlert release];
}
- (void)doBackgroundProcessing {
NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init];
[appDelegate readJSONData];
// must update the UI from the main thread only; equivalent to [self.tableView reloadData];
[self performSelectorOnMainThread:@selector(reloadData) withObject:self.tableView waitUntilDone:NO];
[pool release];
}
Ошибка
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[campaignTableViewController reloadData]: unrecognized selector sent to instance 0x703eba0'