66

我使用 Storyboards(选项卡视图模板)创建了一个新的 Xcode 项目。我在情节提要中添加了几个视图控制器,并希望使用一个带有静态单元格的 UITableView。我创建了它,但是当我在模拟器中运行时,单元格没有出现。除了这个故事板文件之外,我没有更改项目中的任何内容。我正在显示情节提要编辑器和正在运行的模拟器的屏幕截图。标签显示,因此视图加载正确。我将背景颜色设置为灰色,这样我就可以看到 talbeview 正在加载。所有单元格都设置为可见。我将他们的样式更改为基本并编辑了标签,并添加了一个披露指示符,仅此而已。

模拟器 代码

4

5 回答 5

207

使用静态表格视图时不要实现以下任何方法:

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

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}
于 2012-03-31T01:46:10.313 回答
102

正如 Ray Wenderlich 的网站上所述(在这篇文章中:在 iOS 5 第 2部分中开始故事板,“工作中的添加播放器屏幕”部分):

关于静态单元格的另一件事,它们仅适用于 UITableViewController。Storyboard Editor 将允许您将它们添加到常规 UIViewController 内的 Table View 对象中,但这在运行时不起作用。这样做的原因是 UITableViewController 提供了一些额外的魔法来处理静态单元格的数据源。Xcode 甚至会阻止您编译这样的项目并显示错误消息:“非法配置:静态表视图仅在嵌入 UITableViewController 实例时才有效”。

有同样的问题,但这让事情变得清楚......

于 2012-02-24T09:28:38.950 回答
35

您想尝试使用 TableViewController 而不是 Generic View 控制器吗?

于 2011-12-26T23:57:37.013 回答
12

您可以添加一个容器视图并在该容器中嵌入一个 UITableViewController。然后您可以在新控制器中管理您的静态单元。

于 2013-12-31T03:19:28.907 回答
1

我遇到了同样的问题,对我有用的修复方法是使用旧方式performSegue. 呈现静态 UITableViewController 子类,但不会导致静态表格视图正确加载其单元格。[[self navigationController] present...]

于 2014-10-06T19:13:34.557 回答