2013-01-06 1 views
0

내 응용 프로그램은 appDelegate에서 사용자의 위치를 ​​가져 와서 일부 viewControllers의 viewDidAppear 메서드에서 해당 위치를 호출합니다. 내 문제는 viewController가 처음으로로드되면 사용자 위치를 가져올 충분한 시간이 없다는 것입니다.viewContent의 viewDidAppear 메서드에서 위치 호출하기

- (void) viewDidAppear:(BOOL)animated 
{ 
NSString *userLatitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate 
getUserLatitude]; 

NSString *userLongitude =[(PDCAppDelegate *)[UIApplication sharedApplication].delegate 
getUserLongitude]; 
} 

누구든지 해결하는 방법에 어떤 아이디어가 : 여기

- (NSString *)getUserCoordinates 
{ 
NSString *userCoordinates = [NSString stringWithFormat:@"latitude: %f longitude: %f", 
locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude]; 
locationManager = [[CLLocationManager alloc] init]; 
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move 
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m 
[locationManager startUpdatingLocation]; 
return userCoordinates; 
} 

- (NSString *)getUserLatitude 
{ 
NSString *userLatitude = [NSString stringWithFormat:@"%f", 
locationManager.location.coordinate.latitude]; 
return userLatitude; 
} 

- (NSString *)getUserLongitude 
{ 
NSString *userLongitude = [NSString stringWithFormat:@"%f", 
locationManager.location.coordinate.longitude]; 
return userLongitude; 
} 

내가 viewControllers에서 위치를 전화를 사용하고 무엇을 : 여기

내 AppDelegate에인가? 정말 고마워!

답변

0

당신이 두 번 같은 질문을 게시 ...하지만 다른 포스트에서 내 대답을 참조 이유는 확실하지, 한마디로

Pass Coordinates from locationManager in appDelegate to viewController

, 당신은 그와 같은 CoreLocation의 대리자 메서드를 구현해야 새로운 위치가 발견되면 메서드가 호출됩니다. 이러한 델리게이트 메서드에서는 새 사용자의 위치를 ​​얻기 위해 구독하는 NSNotification (ViewControllers)을 시작합니다.

1

여기서 전역 변수를 사용해보십시오. 귀하의 위치가 업데이트되면 업데이트되며 위치 좌표는 항상 업데이트됩니다.

-(void)didUpdateLocation // location update method of CLLocation Manager class 
{ 
// assign current ordinates values to global variables. 
}