【问题标题】:Passing values on annotation tap - iphone google map SDK在注释水龙头上传递值 - iphone google map SDK
【发布时间】:2013-06-25 18:50:15
【问题描述】:

我正在使用 google map SDK 在我的 iphone 应用程序中显示地点。 在录制注释时,我正在导航到地点的详细信息页面。为此,我必须传递该地点的值

目前我正在使用

-(void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(id<GMSMarker>)marker {

 DetailViewController *Detail = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];

     Detail.address=marker.snippet;
     Detail.name = marker.title;
   [self.navigationController pushViewController:Detail animated:YES];


}

但我想传递更多的值,怎么做?

【问题讨论】:

  • 你要传递哪些值?

标签: iphone ios objective-c google-maps map


【解决方案1】:

其实不需要强硬的方法。文档中很清楚我们可以通过annotation.userData传递任何数据

分配这样的细节......

   options.title = @"Some Title";
    options.userData = @"data"; // you can assign any data to this like NSData,String,Array etc
   options.snippet =@"Some thing";

并像这样传递这些数据

-(void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(id<GMSMarker>)marker {
    DetailViewController *Detail = [[DetailViewController alloc]initWithNibName:@" DetailViewController" bundle:nil];


   Detail.data=marker.userData;  // passing the data

[self.navigationController pushViewController:restDetail animated:YES];


}

【讨论】:

    【解决方案2】:

    您需要在 GMSMarker 类中设置更多的属性,如 sn-p,标题,基于您可以在 DetailViewController 类中传递更多的值,如地址,名称。

    希望,你明白我想说什么!!!

    【讨论】:

    • 谢谢你的重播。但没必要我们可以轻松通过。我在下面给出了答案
    【解决方案3】:

    我认为 Dipak 想说的是在marker 后面添加更多类,例如(Class)method。您可能需要括号。

    【讨论】:

      【解决方案4】:

      另一种方法是为标记的键设置值:

      marker.setValue("20", forKey: "id")
      

      您可以稍后使用:

      marker.value(forKey: "id")
      

      或者

      我的方法是为 GMSMarker 创建一个扩展并使用 userData 属性使 GMSMarker 符合我的需要,对我来说,我想为每个标记添加 Branch 类的实例(带有某些分支的标记的映射公司),我就是这样做的:

      extension GMSMarker {
          var branch: Branch {
              set(branch) {
                  self.userData = branch
              }
      
              get {
                 return self.userData as! Branch
             }
         }
      }
      

      所以当我设置标记属性时,我是这样设置的:

      marker.branch = someBranch
      

      这不是比 marker.userData = someBranch 更清晰可读吗??

      【讨论】:

        猜你喜欢
        • 2013-04-10
        • 2011-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多