não UITableView não preencher quando esperando método didUpdateToLocation 's CLLocationManagerDelegate no iPhone SDK
-
22-08-2019 - |
Pergunta
Eu estou tentando preencher um UITableView com uma variedade de células. Eu costumo fazer isso a partir do método viewDidLoad mas desta vez eu quero para preencher a matriz baseada em localização. Abaixo é a primeira linha de minha interface:
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> {
No arquivo de implementação o método viewDidLoad esta aparência:
- (void)viewDidLoad {
// for location
self.locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[super viewDidLoad];
}
I preencher a matriz de células no método didUpdateToLocation:
self.title = @"Open Buildings";
NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1,
self.controllers = array;
O título das atualizações vista quando o local é encontrado, mas a matriz não preenche. A matriz fez populate antes, quando eu tinha o código acima na viewdidupdate. Eu tive que movê-lo para o método didupdatelocation porque o aplicativo não terá a informações de localização quando a vista cargas no método viewDidLoad.
Solução
A sua exibição tabela não sabe que tem novos dados. Assim, uma vez que você tem os novos dados, você precisa dizer a sua visão mesa para recarga:
[myTableView reloadData];