2009-04-01 3 views
1

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.

Antwort

2

Ihre Tabellenansicht weiß nicht, dass Sie neue Daten haben. Also, wenn Sie die neuen Daten haben, müssen Sie Ihre Tabellenansicht sagen, neu zu laden:

[myTableView reloadData]; 
+0

wenn meine Implementierungsklasse die Tableview und nicht meine Nib-Datei wie neu laden sie die Tableview? – Atma

+0

Sie müssen einen Verweis darauf setzen, entweder einen ivar oder einen outlet. – August

+0

Wie würde ich einen Ausgang gesetzt, wenn das ist, was meine Schnittstelle wie folgt aussieht: @interface RootViewController: UITableViewController { – Atma

Verwandte Themen