2009-04-01 3 views
1

J'essaie de remplir une vue UITable avec un tableau de cellules. Je le fais généralement à partir de la méthode viewDidLoad mais cette fois je veux remplir le tableau en fonction de l'emplacement. Ci-dessous la première ligne de mon interface:UITableView ne se remplit pas lorsque vous attendez la méthode didUpdateToLocation de CLLocationManagerDelegate sur l'iPhone SDK

@interface RootViewController : UITableViewController 
<UITableViewDelegate, UITableViewDataSource, CLLocationManagerDelegate> { 

Dans le fichier de mise en œuvre de la méthode viewDidLoad ressemble à ceci:

- (void)viewDidLoad { 

    // for location 
    self.locationManager = [[CLLocationManager alloc] init]; 
    [locationManager startUpdatingLocation]; 
    locationManager.delegate = self; 
    locationManager.distanceFilter = kCLDistanceFilterNone; 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest; 


    [super viewDidLoad]; 
} 

Je remplir le tableau de cellules dans la méthode didUpdateToLocation:

self.title = @"Open Buildings"; 

NSMutableArray *buildingArray = [[NSMutableArray alloc] initWithObjects:building1, 

self.controllers = array; 

Le titre de la vue est mis à jour lorsque l'emplacement est trouvé mais que le tableau n'est pas renseigné. Le tableau a rempli avant quand j'avais le code ci-dessus dans viewdidupdate. J'ai dû le déplacer vers la méthode didupdatelocation, car l'application ne possède pas les informations de localisation lorsque la vue est chargée dans la méthode viewDidLoad.

Répondre

2

Votre vue de table ne connaît pas les nouvelles données. Donc, une fois que vous avez les nouvelles données, vous devez indiquer votre point de vue de la table pour recharger:

si ma classe de mise en œuvre
[myTableView reloadData]; 
+0

est le tableview et pas mon fichier nib comment pouvons-il recharger le tableview? – Atma

+0

Vous devez définir une référence, soit un ivar ou une prise. – August

+0

comment pourrais-je mis une prise si c'est ce que mon interface ressemble à: @interface RootViewController: UITableViewController { – Atma

Questions connexes