Ich versuche, ein UITableview mit einem Array von Zellen zu füllen. Normalerweise mache ich das mit der Methode viewDidLoad, aber dieses Mal möchte ich das Array basierend auf dem Standort auffüllen. Im Folgenden finden Sie die erste Zeile meiner Schnittstelle:UITableView wird nicht gefüllt, wenn CLLocationManagerDelegate die Methode didUpdateToLocation von CLLocationManagerDelegate auf iPhone SDK empfängt.
@interface RootViewController : UITableViewController
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> {
In der Implementierungsdatei wie dies die viewDidLoad Methode sieht:
- (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 wird aktualisiert, wenn die Position gefunden wurde, das Array jedoch nicht gefüllt wird. Das Array füllte vorher, als ich den obigen Code im viewdidupdate hatte. Ich musste es auf die didupdatalocation-Methode verschieben, da die Anwendung nicht über die Standortinformationen verfügt, wenn die Ansicht in der viewDidLoad-Methode geladen wird.
wenn meine Implementierungsklasse die Tableview und nicht meine Nib-Datei wie neu laden sie die Tableview? – Atma
Sie müssen einen Verweis darauf setzen, entweder einen ivar oder einen outlet. – August
Wie würde ich einen Ausgang gesetzt, wenn das ist, was meine Schnittstelle wie folgt aussieht: @interface RootViewController: UITableViewController { –
Atma