首页 > 代码库 > 第4课、UITableView专题(五)
第4课、UITableView专题(五)
目标:
主从表关系 : 点击“省份名称” - 显示“城市列表”
#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专题(五)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。