静态tableview中的单元格内容未显示

时间:2014-02-21 20:43:36

标签: ios iphone objective-c uitableview

我有一个常规的ViewController,其中我添加了占据屏幕一小部分的tableView(如下所示)。因为我的tableView是静态的,所以我没有按照answer中的建议实现任何Tableview数据源方法。但是,我在故事板中放入的内容没有显示出来,我对其他可能发生的事情感到茫然。

为了说明,以下是我在Storyboard中设置的内容:

enter image description here

但这就是模拟器中显示的内容:

enter image description here

我在self.tableview.delegate = self中设置了viewDidLoad,并将我的视图控制器声明为<UITableViewDelegate>。但是,这一切都没有帮助。

2 个答案:

答案 0 :(得分:6)

静态单元格仅适用于UITableViewControllers。它们充当表视图的数据源,并负责为它提供所有那些你很好地设置它的接口Buider。在这种情况下,我通常使用Container View。它是一个显示其中的另一个视图控制器视图的视图。在你的情况下,这个'另一个控制器'是一个UITableViewController或从它派生的那个。

enter image description here

答案 1 :(得分:0)

您需要一个数据源,否则不会显示任何内容。

你需要实现3种方法才能正确使用UITableView

-(void)viewDidLoad {
self.dataArray = @[@"A Fish",@"A Cat",@"A dog"
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
       return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return dataArray.count;
}

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

cell.title = dataArray.indexPath.row;

return cell;
}

在最后一种方法中,您可以看到一个单元标识符,用于标识单元格。

NSString *CellIdentifier = @"CellIdentifier";

在故事板中,如果您单击单元格并查看右侧栏。 您需要填写一个ID框,您需要确保这些ID是相同的,这样您才能保持相同的样式。

希望这有帮助