Отправка координат широты и долготы в didFinishLaunchingWithOptions в делегате приложения - PullRequest
0 голосов
/ 08 марта 2011

У меня есть функция для захвата lat и long в моем делегате приложения, и она работает нормально:

- (void)newPhysicalLocation:(CLLocation *)location {

    // Store for later use
    self.lastKnownLocation = location;

    // Remove spinner from view
    for (UIView *v in [self.viewController.view subviews])
    {
        if ([v class] == [UIActivityIndicatorView class])
        {
            [v removeFromSuperview];
            break;
        }
    }

    // Alert user
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Found" message:[NSString stringWithFormat:@"Found physical location.  %f %f", self.lastKnownLocation.coordinate.latitude, self.lastKnownLocation.coordinate.longitude] delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
    [alert show];
    [alert release];  

    currentLatitude = (self.lastKnownLocation.coordinate.latitude);
    NSLog(@"current latitude: %f",self.lastKnownLocation.coordinate.latitude);


    currentLongitude = (self.lastKnownLocation.coordinate.longitude);
    NSLog(@"current longitude: %f",currentLongitude);
}

Однако я пытаюсь отправить значения currentLatitude и currentLongitude в верхнюю часть делегата приложения в разделе didFinishLaunchingWithOptions. Я пытаюсь сделать это, чтобы я мог передать эти значения другому viewController, в котором я настроил:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

Могу ли я отправить значения currentLatitude и currentLongitude в раздел didFinishLaunchingWithOptions?

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Почему бы не создать currentLatitude и currentLongitude во втором контроллере представления?

Вы можете использовать

- (void)newPhysicalLocation:(CLLocation *)location {
    // your code here

    SecondViewController *viewController = [[SecondViewController alloc] init];
    [viewController setLatitude: currentLatitude andLongitude: currentLongitude];
}

или просто

[viewController setCurrentLatitude: currentLatitude];
[viewController setCurrentLongitude: currentLongitude];
0 голосов
/ 08 марта 2011

Из того, что я понял из вашего вопроса, вы хотите передать эти значения координат другому контроллеру представления.Если это так, вы можете сделать currentLatitude и currentLongitude переменными класса делегата приложения.Затем, когда вы вызываете эту функцию в applicationDidFinishLaunchingWithOptions:, вы можете присвоить значения этим переменным класса.Затем вы можете получить доступ к этим переменным в любом месте через экземпляр делегата приложения.

Примечание: вы должны синтезировать переменные, если хотите получить доступ к ним вне класса.*

...