我是靠谱客的博主 超帅画板,最近开发中收集的这篇文章主要介绍UITableView省市区字典,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.

1.定义一个省数组的属性

@property(nonatomic,retain)NSMutableArray *proArr;

2.对数组初始化

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        [self creatData];

    }

    return self;

}

3.//模块化

-(void)creatData

{

    NSString *path=@"/Users/dlios/Desktop/UI08_tableView省市区字典数组/UI08_tableView省市区字典数组/area.txt";

    NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    NSArray *strArr=[str componentsSeparatedByString:@"n"];

    self.proArr=[NSMutableArray array];

    for (NSString *temp in strArr) {

      if (![temp hasPrefix:@" "]) {

           NSMutableDictionary *proDic=          [NSMutableDictionary dictionary];

            [proDic setObject:temp forKey:@"proName"];

     NSMutableArray *cityArr=[NSMutableArray array];

            [proDic setObject:cityArr forKey:@"cityArr"];

       [self.proArr addObject:proDic];

           }else if([temp hasPrefix:@"  "] && ![temp hasPrefix:@"    "]){

            NSMutableDictionary *cityDic=[NSMutableDictionary dictionary];

            [cityDic setObject:temp forKey:@"cityName"];

     NSMutableArray *zoneArr=[NSMutableArray array];

  [cityDic setObject:zoneArr forKey:@"zoneArr"];

     NSMutableDictionary *proDic=[self.proArr lastObject];

       NSMutableArray   *cityArr=proDic[@"cityArr"];

       [cityArr addObject:cityDic];

        }else{

 NSMutableDictionary *proDic=[self.proArr lastObject];

  NSMutableArray *cityArr=proDic[@"cityArr"];

   NSMutableDictionary *cityDic=[cityArr lastObject];

  NSMutableArray *zoneArr=cityDic[@"zoneArr"];

         [zoneArr addObject:temp];

        }

}

for (NSMutableDictionary *prodic in self.proArr) {

        NSLog(@"%@",prodic[@"proName"]);

        NSMutableArray *cityArr=prodic[@"cityArr"];

        

    for (NSMutableDictionary *citydic in cityArr) {

        NSLog(@"%@",citydic[@"cityName"]);

        NSMutableArray *zoneArr=citydic[@"zoneArr"];

        for (NSString *name in zoneArr) {

            NSLog(@"%@",name);

        }

    }

    }

}


4.在ViewDidLoad里写

self.navigationController.navigationBar.translucent=NO;

       UITableView *tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64) style:UITableViewStylePlain];

    tableView.delegate=self;

    tableView.dataSource=self;

    [self.view addSubview:tableView];

    [tableView release];

5.签2个协议,设置代理人

<UITableViewDataSource,UITableViewDelegate>


6.UITableViewDataSource有2个必须执行的协议方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return self.proArr.count;

}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *reuse=@"reuse";

    UITableViewCell  *cell=[tableView dequeueReusableCellWithIdentifier:reuse];

    if (!cell) {

        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuse];

    }

    NSMutableDictionary *proDic=self.proArr[indexPath.row];

    cell.textLabel.text=proDic[@"proName"];

  return  cell;

}


7.UITableViewDelegate

//tableView的点击方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

(引头文件)

    LiaoNingViewController *liao=[[LiaoNingViewController alloc] init];

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

    [liao release];

    NSMutableDictionary *proDic=self.proArr[indexPath.row];

    //省对应的市数组

    NSMutableArray *cityArr=proDic[@"cityArr"];

     //传市数组

    liao.arr=cityArr;

}


二.创建一个市的UIViewController

1.在.h里写一条属性,用来接收传过来的市数组

@property(nonatomic,retain)NSMutableArray *arr;

2.viewDidLoad里内容同上

UITableView *tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-64) style:UITableViewStylePlain];

    [self.view addSubview:tableView];

    tableView.delegate=self;

    tableView.dataSource=self;

    [tableView release];

2.签协议设代理人

3.实现协议方法

//点击方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

   ZoneViewController *zone=[[ZoneViewController alloc] init];

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

    [zone release];

    NSMutableDictionary *citydic=self.arr[indexPath.row];

   zone.arr =citydic[@"zoneArr"];

}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

        return self.arr.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    static NSString *reuse=@"reuse";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:reuse];

    if (!cell) {

        cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse] autorelease];

    }

    NSMutableDictionary *cityDic=self.arr[indexPath.row];

    cell.textLabel.text=cityDic[@"cityName"];

    return cell;

}


三.传区名,同上,在区的UIViewController里用一个数组接收传过来的区数组

(注意:引头文件,签协议,设置代理人,传递用到的都是属性传递,协议里的必须执行方法)



最后

以上就是超帅画板为你收集整理的UITableView省市区字典的全部内容,希望文章能够帮你解决UITableView省市区字典所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部