糯米团—重制“iPhone团购信息客户端”(四)
2015-12-13 23:38
344 查看
奥对,忘了说了,Xcode7已经默认https连接了,自动锁定了http连接
Solution:
1. 在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary.
2. 在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean,value为YES
接下来写显示商品详情的类
storyboard上面怎么连接我就不说了,直接上代码。
WebViewController.h
WebViewController.m
再来地图
MapViewController.h
MapViewController.m
至于SecondViewController我没有写代码,这里随便怎么处置了。
Solution:
1. 在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary.
2. 在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean,value为YES
接下来写显示商品详情的类
storyboard上面怎么连接我就不说了,直接上代码。
WebViewController.h
#import <UIKit/UIKit.h> @interface WebViewController : UIViewController @property (strong, nonatomic) NSString *stringURL; @property (strong, nonatomic) NSString *shopName; @property (weak, nonatomic) IBOutlet UIWebView *webView; - (IBAction)back:(UIBarButtonItem *)sender; @end
WebViewController.m
#import "WebViewController.h" @interface WebViewController () @end @implementation WebViewController - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = [NSString stringWithFormat:@"%@", _shopName]; NSURL *url = [NSURL URLWithString:_stringURL]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; [_webView loadRequest:request]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)back:(UIBarButtonItem *)sender { [self dismissViewControllerAnimated:YES completion:nil]; } @end
再来地图
MapViewController.h
#import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import "MyAnnotation.h" @interface MapViewController : UIViewController <MKMapViewDelegate> @property (strong, nonatomic) NSString *longtitudeStr; @property (strong, nonatomic) NSString *latitudeStr; @property (strong, nonatomic) NSString *shopName; @property (strong, nonatomic) NSString *shopAddress; @property (strong, nonatomic) CLLocationManager *locationManager; @property (weak, nonatomic) IBOutlet MKMapView *map; - (IBAction)back:(UIBarButtonItem *)sender; @end
MapViewController.m
#import "MapViewController.h" @interface MapViewController () { CLLocationDegrees longitude; CLLocationDegrees latitude; } @property (strong, nonatomic) CLLocation *targetLocation; @property (strong, nonatomic) MyAnnotation *annotation; - (void)gecodeToDisplayTargetLocation; @end @implementation MapViewController - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = _shopAddress; //定位请求 _locationManager = [CLLocationManager new]; [_locationManager requestWhenInUseAuthorization]; //经纬转换 longitude = (CLLocationDegrees)[_longtitudeStr floatValue]; latitude = (CLLocationDegrees)[_latitudeStr floatValue]; _targetLocation = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude]; _map.delegate = self; [self gecodeToDisplayTargetLocation]; } - (void)gecodeToDisplayTargetLocation { CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:_targetLocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) { //传过来1个数据,所以就一个 CLPlacemark *placemark = placemarks[0]; //显示地图缩放比例 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(placemark.location.coordinate, 500, 500); [_map setRegion:viewRegion animated:YES]; //设置标注 _annotation = [MyAnnotation new]; _annotation.shopName = _shopName; _annotation.address = _shopAddress; _annotation.coordinate = placemark.location.coordinate; [_map addAnnotation:_annotation]; }]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - MKMapDelegate implements - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { //使用可重用对象节省内存 MKPinAnnotationView *annotaionView = (MKPinAnnotationView *)[_map dequeueReusableAnnotationViewWithIdentifier:@"PIN_ANNOTATION"]; if (!annotaionView) { annotaionView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"PIN_ANNOTATION"]; } //设置大头针颜色 annotaionView.pinColor = MKPinAnnotationColorPurple; //大头针动态插入 annotaionView.animatesDrop = YES; //显示附加信息在大头针处 annotaionView.canShowCallout = YES; return annotaionView; } - (IBAction)back:(UIBarButtonItem *)sender { [self dismissViewControllerAnimated:YES completion:nil]; } @end
至于SecondViewController我没有写代码,这里随便怎么处置了。
相关文章推荐
- 电脑键盘上你所不知道的秘密,学会了很牛气!
- JavaScript删除数组重复元素的5个高效算法
- ROS知识(9)----NodeHandle命令空间问题
- 逐步展示
- 字符串路径比较
- linux 下脚本查看带宽 (不需要安装其他工具包)
- 或许我的心理承受能力应该更加强些
- 真是好难过啊
- Xcode 打包APP上传是报-----ERROR ITMS-90535: "Unexpected CFBundleExecutable Key.
- java集合框架-转载
- 收集的35个 jQuery 小技巧/代码片段,可以帮你快速开发.
- 【转】mapreduce的shuffle过程
- 嵌入式驱动关于Makefile的编写例子
- Soot源码分析
- 《VB语言程序设计(第3版)》总结
- lucene、lucene.NET详细使用与优化详解
- python字典序从大到小排列
- 欢迎使用CSDN-markdown编辑器
- 我只是一个普通人
- 【转】mapreduce运行机制