首页 > 代码库 > 百度地图demo中的一点代码的优化
百度地图demo中的一点代码的优化
1 @implementation RootViewController 2 3 - (void)viewDidLoad 4 { 5 [super viewDidLoad]; 6 _demoNameArray = [[NSArray alloc]initWithObjects: 7 @"基本地图功能-MapViewBaseDemo", 8 @"多地图使用功能-MultiMapViewDemo", 9 @"图层展示功能-MapViewDemo",10 @"地图操作功能-MapViewControlDemo",11 @"UI控制功能-MapViewUISettingDemo",12 @"定位功能-LocationDemo",13 @"覆盖物功能-AnnotationDemo",14 @"自定义绘制-CustomOverlayDemo",15 @"POI搜索功能-PoiSearchDemo",16 @"地理编码功能-GeocodeDemo",17 @"路径规划功能-RouteSearchDemo",18 @"公交线路查询-BusLineSearch",19 @"离线地图功能-OfflineDemo",20 @"短串分享功能-ShortUrlShareDemo",21 @"云检索功能-CloudSearchDemo",22 @"调启百度导航功能-NavigationDemo",23 nil];24 25 NSMutableArray *array = [[NSMutableArray alloc] init];26 MapViewBaseDemoViewController *mapViewBaseDemoViewController = [[[MapViewBaseDemoViewController alloc] init] autorelease];27 mapViewBaseDemoViewController.title = @"基本地图功能";28 MultiMapViewDemo *multiMapViewDemo = [[[MultiMapViewDemo alloc] init] autorelease];29 multiMapViewDemo.title = @"多地图使用功能";30 MapViewDemoViewController *mapviewDemoController = [[[MapViewDemoViewController alloc] init] autorelease];31 mapviewDemoController.title = @"图层展示功能";32 MapViewControlDemoViewController *mapviewControlDemoController = [[[MapViewControlDemoViewController alloc] init] autorelease];33 mapviewControlDemoController.title = @"地图操作功能";34 35 MapViewUISettingDemoViewController *mapViewUISettingDemoViewController = [[[MapViewUISettingDemoViewController alloc] init] autorelease];36 mapViewUISettingDemoViewController.title = @"UI控制功能";37 38 LocationDemoViewController *locationDemoController = [[[LocationDemoViewController alloc] init] autorelease];39 locationDemoController.title = @"定位功能";40 41 AnnotationDemoViewController *annotationDemoController = [[[AnnotationDemoViewController alloc] init] autorelease];42 annotationDemoController.title = @"覆盖物功能";43 44 CustomOverlayDemoViewController *customOverlayDemo = [[[CustomOverlayDemoViewController alloc] init] autorelease];45 customOverlayDemo.title = @"自定义绘制";46 47 PoiSearchDemoViewController *poiSearchDemoController = [[[PoiSearchDemoViewController alloc] init] autorelease];48 poiSearchDemoController.title = @"POI搜索功能";49 50 GeocodeDemoViewController *geocodeDemoController = [[[GeocodeDemoViewController alloc] init] autorelease];51 geocodeDemoController.title = @"地理编码功能";52 53 RouteSearchDemoViewController *routeSearchDemoController = [[[RouteSearchDemoViewController alloc] init] autorelease];54 routeSearchDemoController.title = @"路径规划功能";55 56 BusLineSearchViewController *buslineDemoViewController = [[[BusLineSearchViewController alloc] init] autorelease];57 buslineDemoViewController.title = @"公交线路查询";58 59 OfflineDemoViewController *offlineDemoViewController = [[[OfflineDemoViewController alloc] init] autorelease];60 offlineDemoViewController.title = @"离线地图功能";61 62 ShortUrlShareDemoViewController *shortUrlShareDemoViewController = [[[ShortUrlShareDemoViewController alloc] init] autorelease];63 shortUrlShareDemoViewController.title = @"短串分享功能";64 65 CloudSearchDemoViewController *cloudSearchDemoViewController = [[[CloudSearchDemoViewController alloc] init] autorelease];66 cloudSearchDemoViewController.title = @"云检索功能";67 68 NavigationDemoViewController *navigationDemoViewController = [[[NavigationDemoViewController alloc] init] autorelease];69 navigationDemoViewController.title = @"调启百度导航功能";70 71 [array addObject:mapViewBaseDemoViewController];72 [array addObject:multiMapViewDemo];73 [array addObject:mapviewDemoController];74 [array addObject:mapviewControlDemoController];75 [array addObject:mapViewUISettingDemoViewController];76 [array addObject:locationDemoController];77 [array addObject:annotationDemoController];78 [array addObject:customOverlayDemo];79 [array addObject:poiSearchDemoController];80 [array addObject:geocodeDemoController];81 [array addObject:routeSearchDemoController];82 [array addObject:buslineDemoViewController];83 [array addObject:offlineDemoViewController];84 [array addObject:shortUrlShareDemoViewController];85 [array addObject:cloudSearchDemoViewController];86 [array addObject:navigationDemoViewController];87 88 _viewControllerArray = array;
}
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController* viewController = [_viewControllerArray objectAtIndex:indexPath.section];
UIBarButtonItem *customLeftBarButtonItem = [[UIBarButtonItem alloc] init];
customLeftBarButtonItem.title = @"返回";
self.navigationItem.backBarButtonItem = customLeftBarButtonItem;
[customLeftBarButtonItem release];
[self.navigationController pushViewController:viewController animated:YES];
}
以上是百度地图中demo的一点代码,是实现的功能是在一个tableview中点击不同的cell,就会转跳到不同的控制器,一显示百度地图不同的功能!如下图所示:
觉得这段代码有点冗余,所以就想优化一下,下面是自己的优化后的代码!
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 _demoNameArray = [[NSArray alloc]initWithObjects: 5 @"基本地图功能-MapViewBaseDemo", 6 @"多地图使用功能-MultiMapViewDemo", 7 @"图层展示功能-MapViewDemo", 8 @"地图操作功能-MapViewControlDemo", 9 @"UI控制功能-MapViewUISettingDemo",10 @"定位功能-LocationDemo",11 @"覆盖物功能-AnnotationDemo",12 @"自定义绘制-CustomOverlayDemo",13 @"POI搜索功能-PoiSearchDemo",14 @"地理编码功能-GeocodeDemo",15 @"路径规划功能-RouteSearchDemo",16 @"公交线路查询-BusLineSearch",17 @"离线地图功能-OfflineDemo",18 @"短串分享功能-ShortUrlShareDemo",19 @"云检索功能-CloudSearchDemo",20 @"调启百度导航功能-NavigationDemo",21 nil];22 23 24 [self setupViewController:[MapViewBaseDemoViewController class] title:@"基本地图功能"];25 [self setupViewController:[MultiMapViewDemo class] title:@"多地图使用功能"];26 [self setupViewController:[MapViewDemoViewController class] title:@"图层展示功能"];27 [self setupViewController:[MapViewControlDemoViewController class] title:@"地图操作功能"];28 [self setupViewController:[MapViewUISettingDemoViewController class] title:@"UI控制功能"];29 [self setupViewController:[LocationDemoViewController class] title:@"定位功能"];30 [self setupViewController:[AnnotationDemoViewController class] title:@"覆盖物功能"];31 [self setupViewController:[CustomOverlayDemoViewController class] title:@"自定义绘制"];32 [self setupViewController:[PoiSearchDemoViewController class] title:@"POI搜索功能"];33 [self setupViewController:[GeocodeDemoViewController class] title:@"地理编码功能"];34 [self setupViewController:[RouteSearchDemoViewController class] title:@"路径规划功能"];35 [self setupViewController:[BusLineSearchViewController class] title:@"公交线路查询"];36 [self setupViewController:[OfflineDemoViewController class] title:@"离线地图功能"];37 [self setupViewController:[ShortUrlShareDemoViewController class] title:@"短串分享功能"];38 [self setupViewController:[CloudSearchDemoViewController class] title:@"云检索功能"];39 [self setupViewController:[NavigationDemoViewController class] title:@"调启百度导航功能"];40 }41 42 43 - (void)setupViewController:(Class)controller title:(NSString *)title44 {45 46 UIViewController *viewController = [[[controller alloc] init] autorelease];47 48 viewController.title = title;49 50 [self.viewControllerArray addObject:viewController];51 52 }53 54 #pragma mark -55 #pragma mark Table view delegate56 57 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {58 UIViewController* viewController = [self.viewControllerArray objectAtIndex:indexPath.section];59 UIBarButtonItem *customLeftBarButtonItem = [[UIBarButtonItem alloc] init];60 customLeftBarButtonItem.title = @"返回";61 self.navigationItem.backBarButtonItem = customLeftBarButtonItem;62 [customLeftBarButtonItem release];63 [self.navigationController pushViewController:viewController animated:YES];64 65 }
百度地图demo中的一点代码的优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。