UITableView的问题

时间:2012-01-29 19:13:35

标签: iphone objective-c

我正在构建一个小应用程序,我在TableView中显示一个数组。问题是我不想使用UITableViewController,我只想使用ViewController。当我在模拟器中运行应用程序时,它不显示数组。这是代码:

.h
@interface ViewController : UIViewController{
    IBOutlet UITableView *table;
    NSArray *array;
}

.m


  - (void)viewDidLoad
{
    [super viewDidLoad];
    array  =[NSArray arrayWithObjects:@"iPad",@"iTV" ,nil];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

        return 1;
}

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

        return [array count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell.textLabel.text = [array objectAtIndex:indexPath.row];

    return cell;
}

请不要回答这个说我必须使用UITableViewController。我知道可以在没有它的情况下管理它,只需使用ViewController即可。不管怎样,谢谢你!

2 个答案:

答案 0 :(得分:2)

定义您的界面

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
    IBOutlet UITableView *table;
    NSArray *array;
}

并将table的{​​{1}}和delegate插座设置为dataSource,将File's owner的课程设置为xib中的File's owner。< / p>

首先浏览项目,单击视图控制器的xib文件。然后从对象列表中选择表视图。在这种情况下,可能需要额外考虑:

如果您已经使用UITableViewController创建了xib,则需要对其进行修改以适合UIViewController。请记住,UIViewController子类实例显示为File的所有者对象。您需要确保有一个顶级的UIView对象,它不会被添加为任何其他视图的子视图,并且UIView中有一个UITableView。

Referencing outlets

UIView应该有一个引用插座:view - 文件的所有者。如果没有,请从ViewController的白色圆圈拖到New Referencing Outlet,释放鼠标,然后点击File's Owner

对于表格视图,点击并拖动view,然后转到文件所有者,然后点击New Referencing Outlet,然后从tabledataSource拖放,然后转到文件所有者,分别为。

BTW,建议使用一些大写字符作为任何类名的前缀。

答案 1 :(得分:0)

您必须遵循TableViewDelegate协议... [http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html]