码迷,mamicode.com
首页 > 其他好文 > 详细

第4课、UITableView专题(五)

时间:2014-09-01 15:25:53      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   strong   ar   for   文件   

 

 

目标:

  主从表关系 : 点击“省份名称” -  显示“城市列表”

 

 

#import "MainTableViewController.h"
#import "ShiTableViewController.h"

@interface MainTableViewController ()

//省份数组
@property (strong, nonatomic) NSArray * arrSheng;
//城市字典
@property (strong, nonatomic) NSDictionary * arrShi;


@end

@implementation MainTableViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [self initArrayData];
}

#pragma mark - 初始化 “省、市”数组
- (void)initArrayData
{
    // 从plist文件中,读出数据
    NSBundle * bundle = [NSBundle mainBundle];
    self.arrSheng = [NSArray arrayWithContentsOfFile:[bundle pathForResource:@"provinces" ofType:@"plist"]];
    self.arrShi = [NSDictionary dictionaryWithContentsOfFile:[bundle pathForResource:@"cities" ofType:@"plist"]];
}



#pragma mark - ** 准备连线操作 **
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    S2iShiTableViewController * shiVC = segue.destinationViewController;
    
    //需要知道用户点击的哪一行,取出对应的数组。
    
    //1. 用户选中的一行
    NSInteger index = [self.tableView indexPathForSelectedRow].row;
    //2. 从省份数组中提取省份名称
    NSString * shengName = self.arrSheng[index];
    //3. 从城市字典中,查找数组。
    NSArray * arrCities = self.arrShi[shengName];
    //4. 将查找结果设置给目标控制器
    [shiVC setArrCities:arrCities];
}



#pragma mark - Table view data source

//多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.arrSheng.count;
}

//单元格
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString * cellIdentifier = @"myCell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)    //如果没在缓冲池找到单元格,实例化一个新的单元格
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    
    //显示内容
    [cell.textLabel setText:self.arrSheng[indexPath.row]];
    

    return cell;
}


//选中行
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"%@", indexPath);
}



@end

 

 

 

 

#import <UIKit/UIKit.h>

@interface ShiTableViewController : UITableViewController

@property (strong,nonatomic) NSArray * arrCities;

@end

 

 

 

#import "ShiTableViewController.h"

@interface ShiTableViewController ()

@end

@implementation ShiTableViewController

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    
    
}



#pragma mark - Table view data source

//行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.arrCities.count;
}

//单元格
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString * cellIdentifier = @"myCell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    
    //单元格显示内容
    cell.textLabel.text = self.arrCities[indexPath.row];
    
    return cell;
    
}


@end

 

 

 

  备注:

    1.  从plist文件中,读取数据。

    2.  tableViewCell中Identifier 设置成 myCell。

    3.  可以看下 Accessory 设置Cell 右边icon的几种图标。

    4.  两个控制器,建立连线后,通过

        - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法可以进行传值。

    

   

  

 

第4课、UITableView专题(五)

标签:des   style   blog   color   io   strong   ar   for   文件   

原文地址:http://www.cnblogs.com/iCodePhone/p/3949245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!