3

我只是想要一个包含项目的静态表视图。我使用带有情节提要的 Xcode 4.2 来完成这项任务。所以我用tableViewController(子类UITableViewController)创建了一个TableView。我将内容定义为“静态单元格”和样式“分组”。

在那之后,我把一些标签和所有我想要的东西放在那些牢房里。我在 tableViewController 中创建了 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

在单元格标签中放入一些内容:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.label1.text = @"This is a title";
    self.label2.text = @"Annika";
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"];
}

构建并运行后,它没有向我显示任何元素......我做错了什么?

左:在故事板中,右:在模拟器中。 在此处输入图像描述

4

1 回答 1

13

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

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

此外,在调用after 之前,不会设置静态表视图中内容的任何出口。[super viewWillAppear:animated]它们在 viewDidLoad 处仍为 nil,您从那里调用它们,因为此时表视图尚未要求任何内容。

于 2012-06-28T08:15:09.647 回答