静态单元格:内容不出现

我只是想要有一个静态表查看其中的项目。 我使用Xcode 4.2和故事板来完成这个任务。 所以我创build了一个TableViewController(子类UITableViewController)的TableView。 我将内容定义为“静态单元格”和样式“分组”。

在那之后,我把这些单元中的一些标签和所有这些物品都放进去了。 我在tableViewController中创build了Outlets:

#import <UIKit/UIKit.h> @interface tableviewcontroller : UITableViewController @property (weak, nonatomic) IBOutlet UILabel *label1; @property (weak, nonatomic) IBOutlet UILabel *label2; @property (weak, nonatomic) IBOutlet UISegmentedControl *segmented; @property (weak, nonatomic) IBOutlet UIImageView *imageview; @property (weak, nonatomic) IBOutlet UITextView *text; @end 

把一些内容放在cell-label中:

 - (void)viewDidLoad { [super viewDidLoad]; self.label1.text = @"This is a title"; self.label2.text = @"Annika"; self.imageview.image = [UIImage imageNamed: @"picture.jpg"]; } 

build立和运行后,它不显示任何元素…我做错了什么?

左:在故事板中,右:在模拟器中。 在这里输入图像说明

对于静态表视图,您不能实现任何数据源方法。 UITableViewController的基本实现有自己的版本的这些方法,通过阅读故事板文件返回适当的内容。 这些方法是提供表格内容的方法,例如numberOfRows,numberOfSections,heightForRow,cellForRow等等。

在你的情况下,你已经实现了tableView:cellForRowAtIndexPath:每次都返回空单元格。 这意味着你的细胞的大小是正确的,但内容已经消失。

而且,静态表视图中的内容都不会被设置,直到[super viewWillAppear:animated]被调用之后。 在viewDidLoad中,它们仍然是零,因为表视图在这一点上没有要求任何内容。