将经纬度坐标发送到应用委托中的 didFinishLaunchingWithOptions

Posted

技术标签:

【中文标题】将经纬度坐标发送到应用委托中的 didFinishLaunchingWithOptions【英文标题】:Sending latitude and longitude coordinates to the didFinishLaunchingWithOptions in the app delegate 【发布时间】:2011-03-08 04:40:13 【问题描述】:

我有一个函数可以在我的应用程序委托中获取 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 部分吗?

【问题讨论】:

【参考方案1】:

为什么不在第二个viewController中创建currentLatitudecurrentLongitude呢?

你可以使用

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

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

或者只是

[viewController setCurrentLatitude: currentLatitude];
[viewController setCurrentLongitude: currentLongitude];

【讨论】:

谢谢,我做了一个类似的实现,并让它工作 如果答案对您有帮助,请接受和/或投票。其他人可能会发现这个答案与他们的问题相关。谢谢,不客气。【参考方案2】:

根据我从您的问题中了解到的情况,您希望将这些坐标值传递给另一个视图控制器。如果是这种情况,您可以将currentLatitudecurrentLongitude 作为应用程序委托的类变量。然后,当您在applicationDidFinishLaunchingWithOptions: 中调用此函数时,您可以将值分配给这些类变量。然后你可以通过应用委托的实例在任何地方访问这些变量。

注意:如果你想在类外访问它们,你必须合成变量。

希望对你有帮助

【讨论】:

以上是关于将经纬度坐标发送到应用委托中的 didFinishLaunchingWithOptions的主要内容,如果未能解决你的问题,请参考以下文章

如何将经纬度坐标中的栅格投影到 UTM,以便在 tmap 中绘图?

将地址转换为经度和纬度

如何实时获取经纬度坐标

如何将WGS84坐标转换成经纬度坐标

Post无法将数据发送到php文件[php新手]

如何用PHP获取到百度地图坐标或者经纬度