我有一個叫做「CortesViewController」的ViewController,它有一個名爲myMap的MKMapView。我有一個函數showAddress,它在CortesViewController.h中定義並在相應的.m文件中實現。從另一個ViewController類調用函數
- (void) showAddress:(float) lat :(float) lon :(int) keytype
{
centerCoordinate.latitude = lat;
centerCoordinate.longitude = lon ;
NSLog(@"with key = 0, lat lon are %f, %f", centerCoordinate.latitude, centerCoordinate.longitude);
[mymap setCenterCoordinate:centerCoordinate animated:TRUE] ;
}
我有其他的UITableViewController「PlacesViewController」,其中包含與名稱和經緯度位置列表,並可以通過放置在CortesViewController按鈕被帶到前面。點擊任何地點的名稱時,我想返回到mymap,在地圖中心顯示選定的地點。所以我稱之爲「showAddress」功能
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
in PlaceViewController.m。實現如下所示。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Place *placeAtIndex = (Place *)[appDelegate.PlacesArray objectAtIndex:indexPath.row];
NSLog(@"required lat long is %f, %f ", placeAtIndex.PlaceLatitude, placeAtIndex.PlaceLongitude);
CortesViewController *returnToMap = [[CortesViewController alloc] init];
float tableLatitude = placeAtIndex.PlaceLatitude ;
float tableLongitude = placeAtIndex.PlaceLongitude;
[returnToMap showAddress :tableLatitude :tableLongitude : 0];
[self.navigationController dismissModalViewControllerAnimated:YES];
}
代碼運行而不會MyMap中出現錯誤或警告,但鑑於儘管點擊具有不同的緯度和經度的地方不會改變。 showAddress將輸入值lat,lon正確地存儲在PlaceViewController.m中的UITableView中。但線
[mymap setCenterCoordinate:centerCoordinate animated:TRUE] ;
似乎沒有從
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
調用時工作。
請幫忙。感謝您提前提供任何幫助。
我沒有改變viewWillAppear中的方法,它完美地工作。感謝您的回答。 – alekhine