iOS Google Maps API-从另一个视图控制器发送GMSMapview

杰克·T

我是iOS开发人员的新手,也是使用Google Maps API的新手。

我有两个单独的视图,我想要一个mapview。第一个场景是允许您在地图上找到位置,输入地址或使用当前位置的场景。在下一个场景中,我想使用用户从上一个场景输入的相同位置,而不是我要使用卫星视图的常规地图,并且将有一些其他工具来操纵地图以达到目的我的应用程序

我需要有两个单独的场景,因为界面非常不同,但是我无法将信息从一个mapview发送到另一个mapview。这是我尝试过的几种方法(已注释掉两种):

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showServiceArea"]) {
    ServiceAreaViewController *destViewController = segue.destinationViewController;
    destViewController.camera = [GMSCameraPosition cameraWithLatitude:curLocation.location.coordinate.latitude longitude:curLocation.location.coordinate.longitude zoom:17]; //Setting up a camera in the next scene using the curLocation coordinates from the current view
    //destViewController.view = _mapView;  //Setting the next view controller's view to the current mapView and changing the mapType to satellite
    //_mapView.mapType = kGMSTypeSatellite;
    //destViewController.serviceAreaMapView = _mapView;  //copying the current mapview to a mapview on the next scene
    //destViewController.serviceAreaMapView.mapType = kGMSTypeSatellite;
}

}

我尝试过的每种方法都引发了异常,并导致我的应用程序崩溃。这是上面代码崩溃的输出:

由于未捕获的异常“ NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController setCamera:]:无法识别的选择器已发送到实例0x17e73eb0”

对于前两个注释掉的方法,我认为在加载下一个场景时,已删除分配给下一个视图的数据。我不确定当前代码有什么问题。

有人能指出我正确的方向,以便使用当前场景的数据在随后的场景中生成mapView吗?谢谢。

我不认为您应该在两个控制器之间传递UI。您应该只将非UI数据传递给第二个控制器。特别是您的UI数据可能很弱,可能会变为零。此外,prepareForSegue发生在加载第二个控制器的视图之前,将不会设置传递给第二个控制器的任何UI数据。

之间传递数据的正确方法是传递非UI数据。例如,如果您UITextView的第一个控制器中有一个,则不应这样做secondController.textView = firstController.textView;,而应传递非UI属性。因此,您需要NSString *myText;在控制器中创建一个,然后才能secondController.myText = self.myText;在第一个控制器的prepareForSegue方法中进行操作。当在viewWillLoad()viewDidLoaded()方法中加载第二个控制器的视图(将加载UITextView)时,可以在第二个控制器中使用myText数据设置UITextView:self.textView = myText

在您的情况下,您不应mapView将第一个控制器的传递给第二个控制器,而应声明变量将其保留mapView在第二个控制器中,然后可以将非UI mapView属性数据传递给第二个控制器中的强变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS-ObjC Google Maps Api Key

来自分类Dev

Android替代iOS Google Maps API GMSGeometryOffset

来自分类Dev

Google Maps Satellite视图底部的社区照片的Google Maps API?

来自分类Dev

Google Maps SDK iOS卫星视图

来自分类Dev

在iOS App中打开Google Maps视图

来自分类Dev

Google Maps iOS API密钥不起作用

来自分类Dev

双击标记Google Maps API C#iOS

来自分类Dev

动态更改iOS版Google Maps API的响应语言

来自分类Dev

双击标记Google Maps API C#iOS

来自分类Dev

iOS Google Maps API路由无法正确显示

来自分类Dev

iOS Google Maps Direction API提供了错误的扭曲路径

来自分类Dev

如何从另一个视图控制器iOS刷新表视图?

来自分类Dev

如何关闭当前的视图控制器并在iOS中推送另一个视图控制器

来自分类Dev

iOS与Google Maps

来自分类Dev

iOS与Google Maps

来自分类Dev

Google Maps API-位置查找器

来自分类Dev

单击按钮移至iOS中的另一个视图控制器

来自分类Dev

从目标C / iOS中的另一个视图控制器访问C数组

来自分类Dev

iOS-将数据传递到另一个视图控制器

来自分类Dev

iOS如何将数组隔离到另一个视图控制器

来自分类Dev

Google Maps API RefererNotAllowedError

来自分类Dev

Google Maps API DeletedApiProjectMapError

来自分类Dev

Google Maps Api许可

来自分类Dev

Google Maps Api

来自分类Dev

Google Maps REST API

来自分类Dev

Google Maps API请求

来自分类Dev

Google Maps Directions API

来自分类Dev

Google Maps API参数

来自分类Dev

无法在iOS版Google Maps的GMSMapView上移动相机