UITableView не заполняется при ожидании метода didLpdateToLocation CLLocationManagerDelegate в iPhone SDK - PullRequest
1 голос
/ 02 апреля 2009

Я пытаюсь заполнить UITableview массивом ячеек. Я обычно делаю это с помощью метода viewDidLoad, но на этот раз я хочу заполнить массив в зависимости от местоположения. Ниже первая строка моего интерфейса:

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

В файле реализации метод viewDidLoad выглядит следующим образом:

- (void)viewDidLoad {

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


    [super viewDidLoad];
}

Я заполняю массив ячеек в методе didUpdateToLocation:

    self.title = @"Open Buildings";

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

self.controllers = array;

Заголовок представления обновляется, когда местоположение найдено, но массив не заполняется. Массив заполнялся раньше, когда у меня был приведенный выше код в viewdidupdate. Мне пришлось переместить его в метод didupdatelocation, потому что приложение не будет иметь информацию о местоположении, когда представление загружается в метод viewDidLoad.

1 Ответ

2 голосов
/ 02 апреля 2009

Ваше табличное представление не знает, что у вас есть новые данные. Итак, как только у вас появятся новые данные, вам нужно указать перезагрузке табличного представления:

[myTableView reloadData];
...