IOS 8 使用系统自带导航

//
//  ViewController.m
//  APP自带导航
//
//  Created by wup on 15/5/23.
//  Copyright (c) 2015年 apple. All rights reserved.
//
#import "ViewController.h"
#import <MapKit/MapKit.h>
@interface ViewController ()
@property (nonatomic,strong)  CLGeocoder *geo;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
//    CLLocationManager *clmgr = [[CLLocationManager alloc] init];
//    [clmgr requestAlwaysAuthorization];
    
//    MKMapView *mv = [[MKMapView alloc] initWithFrame:self.view.bounds];
//    [self.view addSubview:mv];
    [self.geo  geocodeAddressString:@"丽江" completionHandler:^(NSArray *placemarks, NSError *error) {
      
        
      
         //获取到起点的MKplaceMark
        
        MKPlacemark *startPlace = [[MKPlacemark alloc] initWithPlacemark:[placemarks firstObject]];
        
        //等待获取到起点的placemarks之后在获取终点的placemarks,block回调延迟问题
        [self.geo  geocodeAddressString:@"北京" completionHandler:^(NSArray *placemarks, NSError *error) {
            
            /**
              获取到终点的MKplaceMark,MKPlaceMark 是ClPlaceMark的子类。
             */
            MKPlacemark *endPlace = [[MKPlacemark alloc] initWithPlacemark:[placemarks firstObject]];
            
            /**
             将MKPlaceMark转换成MKMapItem,这样可以放入到item这个数组中
 
             */
            MKMapItem *startItem = [[MKMapItem alloc ] initWithPlacemark:startPlace];
            MKMapItem *endItem = [[MKMapItem alloc ] initWithPlacemark:endPlace];
            
            NSArray *item = @[startItem ,endItem];
            
            //建立字典存储导航的相关参数
            NSMutableDictionary *md = [NSMutableDictionary dictionary];
            md[MKLaunchOptionsDirectionsModeKey] = MKLaunchOptionsDirectionsModeDriving;
            md[MKLaunchOptionsMapTypeKey] = [NSNumber numberWithInteger:MKMapTypeHybrid];
            
            
            
            
            /**
             *调用app自带导航,需要传入一个数组和一个字典,数组中放入MKMapItem,
             字典中放入对应键值
             
             MKLaunchOptionsDirectionsModeKey   开启导航模式
             MKLaunchOptionsMapTypeKey  地图模式
                                                 MKMapTypeStandard = 0,
                                                 MKMapTypeSatellite,
                                                 MKMapTypeHybrid
             
             // 导航模式
             MKLaunchOptionsDirectionsModeDriving 开车;
             MKLaunchOptionsDirectionsModeWalking 步行;
             */
#warning 其实所有的代码都是为了下面一句话,打开系统自带的高德地图然后执行某些动作,launchOptions里面的参数指定做哪些动作
            [MKMapItem openMapsWithItems:item launchOptions:md];
        }];
    }];
 
}
#pragma mark - 超级懒加载
-(CLGeocoder *)geo
{
    if (!_geo)
    {
        _geo = [[CLGeocoder alloc] init];
        
    }
    return  _geo;
}
@end

时间: 2024-10-15 00:12:59

IOS 8 使用系统自带导航的相关文章

iOS开发,系统自带表情的获取

//将数字转为 #define EMOJI_CODE_TO_SYMBOL(x) ((((0x808080F0 | (x & 0x3F000) >> 4) | (x & 0xFC0) << 10) | (x & 0x1C0000) << 18) | (x & 0x3F) << 24); - (void)viewDidLoad { [super viewDidLoad]; //单独调用 int sym = EMOJI_CODE_T

iOS学习 - 21 系统自带解析 XML

准备工作: new -> file -> other -> Empty ,在 Save As: 中随便起个名字后缀为 .xml 拷贝下面 <person> <student> <pid>1001</pid> <name>小明</name> <sex>男</sex> <age>12</age> </student> </person> 完整代码 /

IOS开发-UIBarButtonItem系统自带图标总结

1.这四个返回的是后面的单词. UIBarButtonSystemItemDone UIBarButtonSystemItemCancel UIBarButtonSystemItemEdit UIBarButtonSystemItemSave 2.这三个不是按钮,比如第一个是设置间隔的. UIBarButtonSystemItemFlexibleSpace UIBarButtonSystemItemFixedSpace UIBarButtonSystemItemCompose 3.其余的都是图标

iOS开发——运行时OC篇&amp;使用运行时获取系统的属性:使用自己的手势修改系统自带的手势

使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛逼的技术运行时(Runtime) 关于运行时这里就不多说了,请查看笔者之前搬过来了精选文章,这里主要是怎么在实际开发中使用运行时实现我们想要的功能. 比如,在iOS开发中有这样一个问题,关于导航栏中我们点击一个按钮会跳到对应的子控制器,但是这里问题就来了,我们在对应的字控制器中可以点击对应的back

(八十一)利用系统自带App来实现导航

利用系统的地图App进行导航,只需要传入起点和终点.启动参数,调用MKMapItem的类方法openMapWithItems:launchOptions:来实现定位,调用此方法后会打开系统的地图App. 下面我们来看看这个方法: + (BOOL)openMapsWithItems:(NSArray *)mapItems launchOptions:(NSDictionary *)launchOptions; ①第一个参数是一个MapItem数组,每个MapItem中可以包含一个地标,用两个Map

Ios二维码扫描(系统自带的二维码扫描)

Ios二维码扫描 这里给大家介绍的时如何使用系统自带的二维码扫描方法和一些简单的动画! 操作步骤: 1).首先你需要搭建UI界面如图:下图我用了俩个imageview和一个label 2).你需要在你当前的控制器中导入 #import <AVFoundation/AVFoundation.h> <AVCaptureMetadataOutputObjectsDelegate>代理 3).在@interface中定义 @property (nonatomic,strong)AVCapt

ios程序如何实现系统自带的分享

ios系统自带的分享,支持的平台非常有限, 国内的只有 新浪微博和 腾讯微博,但是程序要求不多的话,也可以直接使用系统自带的分享,也比较简单. 首先,需要导入系统自带的框架  #import <Social/Social.h> // 1.判断平台是否可用(就是手机设置里 的新浪微博 和腾讯微博 有没有账号登录) if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) { UIAlertVi

IOS系统自带社交分享

很多APP中都带有社交分享功能,通过用户的分享,让更多地人去了解和使用这个APP,目前社交分享是移动互联网应用程序推广的最重要手段之一,国内较或的分享平台有微信,IOS6后苹果集成的新浪微博,还有IOS7后集成的腾讯微博. 在IOS中,实现社交分享可以自己编写各个平台的分享代码,但代码量较多,也可以利用IOS自带的Social.framework,更可以利用第三方的分享框架,如友盟,ShareSDK等.接下来先介绍一个系统自带的分享功能. 打开设备或模拟器的偏好设置,可以看到如下 系统需要先登录

iOS系统自带的 UIAlertView 自动旋转的实现

这里主要解析 UIAlertView 的几个关键功能的实现: 随着设备屏幕的旋转而旋转: Alert弹出框,使用UIWindow来实现,就是说,不用依赖于当前显示在最前面的UIView. 实现源码参考: http://git.oschina.net/shede333/BMAlertHud 使用UIWindow 弹出一个Alert框,最好新建一个 UIWIndow, 把window.windowLevel = UIWindowLevelAlert,这样就能显示在最前面: 调用[window mak