Как я могу изменить источник данных TableViewController в зависимости от местоположения пользователя - PullRequest
1 голос
/ 04 декабря 2011

Я собираюсь сделать это, у меня есть панель вкладок с 5 элементами вкладок, и первая из них подключена к TableViewController. Я бы хотел, чтобы источник данных tableview определялся местоположением пользователя, таким как город / штат. У меня есть этот код -ViewDidLoad

locationManager = [[CLLocationManager alloc]init];
locationManager.delegate = self;
locationManager.distanceFilter = KCLDistanceFilterNone;
locationManager.desiredAccuracy = LCLLocationAccuracyHunderedMeters;
[locationManager startUpdatingLocation];

, а затем получение местоположения в didUpdateToLocation и установка свойства userCurrentLocation.Но я не могу получить userCurrentLocation, чтобы определить источник данных для TableView.Пожалуйста, порекомендуйте.

Где установить источник данных, как показано ниже

if (userLocation == @"Sydney") 
{
arrData = [NSMutableArray arrayWithObjects:@"San Francisco",nil];
}
else
{
arrData = [NSMutableArray arrayWithObjects:@"California",nil];

}

Заранее спасибо.

1 Ответ

1 голос
/ 04 декабря 2011

Вам нужно будет ответить на метод делегата didUpdateToLocations, поэтому я рекомендую вам начинать загрузку таблицы только после вызова этого метода:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

Таким образом, вы гарантируете, что получили ответ. См. Делегат документация для получения дополнительной информации.

Edit:

Сначала вам нужно будет установить свой класс как CLLocationManagerDelegate, что вы сделаете это в заголовочном файле вашего класса.

Хотя вам, вероятно, придется создать UITableViewController в методе viewDidLoad, хотя вам придется добавить контроллер представления в главное представление при вызове метода делегата didUpdateToLocation.

Если вам нужно что-то еще, дайте мне знать.

...