为什么我的Cell不会显示在我的TableViewController中?

时间:2013-12-24 09:30:02

标签: ios uitableview cells

我的表视图控制器中的单元格出现了问题。

我已经创建了一个表视图控制器,其中包含一些用户可以编辑的单元格,但是这些单元格不显示...

这是视图控制器的代码:

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

    // Return the number of sections.
    return 0;
}

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

    // Return the number of rows in the section.
    return 0;
}

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

    // Configure the cell...

    return cell;
}

标题:

@interface AircraftDetailsViewController : UITableViewController
@property (weak, nonatomic) IBOutlet UITextField *AircraftNameLabel;
@property (weak, nonatomic) IBOutlet UITextField *AircraftImmatLabel;

如果有人可以帮助我...我不明白为什么它是空的......

我忘了补充说我的细胞是“静态细胞”。

编辑:问题得到了解决。我只是评论这一行:

//- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
//{
//
//    // Return the number of sections.
//    return 0;
//}
//
//- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//{
//
//    // Return the number of rows in the section.
//    return 0;
//}
//
//- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//{
//    static NSString *CellIdentifier = @"Cell";
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//    
//    // Configure the cell...
//    
//    return cell;
//}

现在它有效。

7 个答案:

答案 0 :(得分:2)

如果故事板中有静态表视图,请不要实现任何数据源方法。 UITableViewController有自己的实现,您已在上面的代码中覆盖了这些实现。如果覆盖方法,则必须调用super实现,获取静态单元格的值,然后根据需要进行修改。

即使你没有使用静态单元格,你仍然看不到任何东西,因为你告诉你的表视图表中没有任何部分和行。

答案 1 :(得分:1)

对于初学者,您将返回0个部分和0个行,因此不会显示任何内容。你应该返回值> 0根据您的数据布局。

修复后确保在IB中定义“Cell”标识符(在Cell的属性窗格中,虽然我认为它是默认名称,并且应该已经存在)。

答案 2 :(得分:0)

在您的代码中,您指定的表根本没有单元格。 返回数字*函数

中的其他0值

答案 3 :(得分:0)

您忘记在.h文件中声明协议。
将此@interface AircraftDetailsViewController : UITableViewController更改为@interface AircraftDetailsViewController : UITableViewController<UITableViewDataSource, UITableViewDelegate>

你在datasource方法中返回0是错误的。

答案 4 :(得分:0)

部分和行必须是非零值

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

// Return the number of sections.
return 1;

}

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

{

// Return the number of rows in the section.
return 10;

}

答案 5 :(得分:0)

因此,删除上面的代码并将控制器设置为接口构建器中的表数据源和表委托,并使用ctrl +从tableview拖动到控制器。对于静态细胞来说就足够了。

答案 6 :(得分:0)

您通过委托方法将数字sectionrow称为到tableview。所以它什么都没有显示根据这一点,你的cellForRowAtIndexPath:永远不会被召唤。