一、我们再把UITableView显示数据的步骤过一遍: 1.要让UITableView显示数据,需要下面几步: 1)第一步,设置数据源的对象,两种方法: 1> 拖线,直接选中UITableView,右键,把dataSource属性,拖线到ViewController上面, 2> 代码方式,在viewDidLoad方法里面,也就是在控制器管理的View加载完毕以后,写上这句代码: self.tableView.dataSource = self; 2)第二步,控制器遵守UITableView的数据源协议,UITableViewDataSource, 3)第三步,一般情况下,控制器要实现三个数据源方法,一般情况下,只实现这个三个方法就够了, 1> 第一个是,numberOfSectionsInTableView, - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } 就是 告诉它,在这个TableView里面要现实多少组数据, 那有人问了,这是个方法,它怎么告诉UITableView啊,当UITableView运行起来之后,它会去找到这个数据源对象,然后,它会调用这个数据源对象的这个方法,numberOfSectionsInTableView,一调这个方法,就返回1,它就知道了,哦,你要显示1组数据啊, 2> 第二个方法,numberOfRowsInSection, - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 2; } 这个的意思是,告诉TableView,每一组显示几行数据, 这个参数section,是第几组, 如果刚才那个方法返回的是1,这儿始终传的是0,索引是0的这一组,如果你刚才那个方法返回的是5,那么这个section有可能是0、1、2、3、4, 是不是有可能是5个值啊,0、1、2、3、4这个索引, 那么你这里要根据section是第几组,然后返回不同的数值, 这样的话,就表示,对应的组,要显示几行数据吧, 3> 第三个方法,cellForRowAtIndexPath, 第三个方法,这个方法,是咱们接下来这几天,反复会在用的一个方法, 咱们会在这个方法里面,写很多很多代码, 这个方法的意思就是说,在每一组的每一行里面,要显示什么样的单元格, - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ //创建一个单元格对象并返回 UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; //为单元格制定数据 cell.textLabel.text = @“hello”; return cell; } 大家看,这个方法中有一个参数,index Path,这个参数,叫做indexPath, 这个参数的数据类型,是什么类型,NSIndexPath类型吧,是不是这么一个类型吧,这个参数里面,包含什么东西呢, 这个indexPath其实一点点都不神奇, 它里面,就包含我们要的这么两个值, 1> 一个是section, 2> 一个是row, 也就是说,在这个对象里面,封装了这么两个值,一个是当前你是在第几组,一个是当前你是在第几行, 也就是说,接下来,我们就可以判断,根据这个section是第几组的第几行,返回不同的cell,然后界面上就会在不同的组里面显示不同的内容了, 3.然后,这个cell.textLabel.text, <