首先将Table View拖到View窗口,将数据源和委托连接旁边的圆圈拖到File's Owner图标,这样,控制类就成为这张表的数据源和委托了。

视图控制器的头文件代码如下:

#import <UIKit/UIKit.h>
//让类遵从UITableViewDelegate和UITableViewDataSource两个协议,充当表视图的委托和数据源
@interface SZLViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
  //声明一个数组用于放置将要显示的数据 NSArray
*listData; } @property (nonatomic, retain) NSArray *listData; @end

实现代码:

#import "SZLViewController.h"

@implementation SZLViewController

@synthesize listData;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSArray *array = [[NSArray alloc] initWithObjects:@"GuangZhou", @"ShenZhen", @"BeiJing", @"ShangHai", @"TianJing", @"HangZhou", @"NingBo", @"HongKong", @"ZhuHai", @"XiZang", @"XinJiang", @"ChangSha", @"NanNing", @"WuLuMuQi", nil];
    self.listData = array;
    [array release];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    self.listData = nil;
}

-(void)dealloc{
    [listData release];
    [super release];
}

再添加如下代码:

/**
 *查看指定分区有多少行,默认的分区数量为1,此方法用于返回组成列表的表分区中的行数
 */
 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.listData count];
}

/**
 *当表要绘制一行时会调用此方法
 */
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //静态字符串实例,充当表示某种表单元的键
    static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
    //SimpleTableIdentifier类型的可重用单元,
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
    if(cell == nil){
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
    }
    //从indexPath变量获取表视图需要显示哪些行
    NSUInteger row = [indexPath row];
    //从数组获取相应的字符串
    cell.textLabel.text = [listData objectAtIndex:row];
    
    return cell;
}