我使用Storyboards(标签视图模板)创建了一个新的Xcode项目。我在故事板中添加了几个视图控制器,并希望将UITableView与静态单元格一起使用。我创建了它,但是当我在模拟器中运行时,细胞不会出现。除了这个故事板文件,我没有更改项目中的任何内容。我正在显示故事板编辑器和模拟器运行的屏幕截图。标签显示,因此视图正确加载。我将背景颜色设置为灰色,这样我就可以看到talbeview正在加载。所有单元格都设置为可见。我将他们的风格改为Basic并编辑了标签,并添加了一个披露指标,就是这样。
答案 0 :(得分:201)
使用静态表视图时,请勿实现以下任何方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}
答案 1 :(得分:102)
如Ray Wenderlich的网站所述(在这篇文章中:Beginning Storyboards in iOS 5 Part 2,“工作中添加播放器屏幕”部分):
关于静电电池的另一件事,它们只适用于 的UITableViewController。故事板编辑器将允许您添加它们 常规UIViewController中的Table View对象,但不会 在运行时工作。原因是UITableViewController 为照顾数据源提供了一些额外的魔力 静电池。 Xcode甚至阻止您编译这样的项目 错误消息:“非法配置:静态表视图 仅在嵌入UITableViewController实例时才有效“。
有同样的问题,但这清楚了......
答案 2 :(得分:11)
您可以添加容器视图并在该容器中嵌入UITableViewController。然后,您可以管理新控制器内的静态单元格。
答案 3 :(得分:1)
我遇到了同样的问题,而且对我有用的修复是使用performSegue.
呈现静态UITableViewController子类使用[[self navigationController] present...]
呈现旧方式没有结果在静态表视图中正确加载其单元格。