UITableView nicht füllen, wenn für CLLocationManagerDelegate ‚s didUpdateToLocation Methode auf dem iPhone SDK warten
-
22-08-2019 - |
Frage
Ich versuche, ein UITableView mit einer Reihe von Zellen zu füllen. Ich tue dies in der Regel von der viewDidLoad Methode aber dieses Mal möchte ich das Array vor Ort basierend aufzufüllen. Im Folgenden finden Sie die erste Zeile meiner Schnittstelle:
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> {
In der Implementierungsdatei sieht die viewDidLoad Methode wie folgt:
- (void)viewDidLoad {
// for location
self.locationManager = [[CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[super viewDidLoad];
}
ich bevölkern die Anordnung von Zellen in der didUpdateToLocation Methode:
self.title = @"Open Buildings";
NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1,
self.controllers = array;
Der Titel der Ansicht aktualisiert, wenn Standort gefunden wird, aber das Array bevölkert nicht. Das Array hat bevölkert vor, wenn ich den obigen Code in der viewdidupdate hatte. Ich hatte es auf die didupdatelocation Methode zu bewegen, weil die Anwendung nicht die Informationen über den Standort, wenn die Sicht Lasten im viewDidLoad Verfahren.
Lösung
Ihre Tabellenansicht nicht weiß, Sie neue Daten haben. Also, wenn Sie die neuen Daten haben, müssen Sie Ihre Tabellenansicht sagen, neu zu laden:
[myTableView reloadData];