Objective c 如何将iOS映射嵌入UINavigationController
你们知道如何将新地图嵌入导航系统吗?我们有一个应用程序,它有下面的一段代码——调用谷歌地图在地图中显示起始地址和结束地址Objective c 如何将iOS映射嵌入UINavigationController,objective-c,uinavigationcontroller,mapkit,ios6,Objective C,Uinavigationcontroller,Mapkit,Ios6,你们知道如何将新地图嵌入导航系统吗?我们有一个应用程序,它有下面的一段代码——调用谷歌地图在地图中显示起始地址和结束地址 NSURL *mapURL = [NSURL URLWithString:some_url_string]; [webview loadRequest:[NSURLRequest requestWithURL:mapURL]]; UIViewController *viewController = [[UIViewController alloc] init]; viewC
NSURL *mapURL = [NSURL URLWithString:some_url_string];
[webview loadRequest:[NSURLRequest requestWithURL:mapURL]];
UIViewController *viewController = [[UIViewController alloc] init];
viewController.title = @"My Map Display";
[viewController.view addSubview:webview];
[self.navigationController pushViewController:viewController animated:YES];
我们有用于构造正确url的位置坐标
上面的代码将新的UIViewController/webview推送到当前视图的navigationController中,以允许应用程序的用户使用后退按钮返回到我们的应用程序
当用户需要新地图时,我们希望在运行iOS 6的设备上调用新地图API。Apple显示了新API MKMapItem的以下使用模式:
[MKMapItem openMapsWithItems:mapItems launchOptions:options];
然而,“按方式做事”会在我们的应用程序上呈现地图——用户没有明显的方式从显示的地图返回到我们的应用程序。我们更喜欢UINavigationController中的地图,用户可以使用后退按钮从地图显示返回。你们知道如何将地图嵌入navigationController吗?如何嵌入调用[MKMapItem openMapsWithItems:]生成的映射?我认为您对当前解决方案有点误解。根据你所说的,用户永远不会离开你的应用程序,他们只是在UIWebView中看到谷歌地图。
openMapsWithItems:mapItems:launchOptions:
实际上会打开“地图”应用程序,因此您无法从“地图”应用程序中提供回应用程序的链接
这样说,有两件事要考虑。
如果选择此路径,则需要查看MKMapView类,而不是将webview添加为子视图,而是将MKMapView添加为子视图,并将注释添加到MKMapView。一种常见的使用模式是,允许用户触摸注释,在地图应用程序中打开带有按钮的“标注”。在我们的实现中,webView的目的是按顺序显示。当用户在我们的代码中到达这一点时,他们已经通过一个地图视图来选择一个特定的业务。我们正试图让他们从应用程序中获得一个转弯方向。这适用于url/google。他们可以随时使用“后退”按钮返回到我们使用其所选业务生成的地图视图。我们想知道是否有一种等效的方法来实现新地图的使用模式。听起来你好像在说没有。对,你不能在地图应用程序之外访问逐轮功能,因为它是地图应用程序的功能,而不是SDK。你当然可以继续你现在正在做的事情,但我建议为你的用户提供在地图应用程序中轻松打开地址的功能。看起来MkMapKit能够显示新地图。我不知道你是否为苹果工作。但是,如果你这样做了,我想提出一个功能请求:我们希望能够在地图显示中显示两个注释之间的路线。@Sunny我不为苹果工作,但你可以在bugreporter.Apple.com上提交一个功能请求,我相信这是很多人都喜欢看到的。