如何根据用户位置更改TableViewController数据源

时间:2011-12-04 02:07:40

标签: iphone core-location

我打算这样做 我有一个带有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 个答案:

答案 0 :(得分:1)

您需要回复委托方法didUpdateToLocations,因此我建议您在调用此方法后才开始加载tableview:

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

这样你就能保证得到答案。有关详细信息,请参阅代理人documentation

编辑:

首先,您必须将您的课程设置为您在课程的标题文件中执行此操作的CLLocationManagerDelegate

虽然您可能必须在UITableViewController方法中创建viewDidLoad,但在调用didUpdateToLocation委托方法时,您必须在主视图中添加视图控制器。 / p>

如果您还需要其他信息,请与我联系。