2011-12-26 48 views
63

我已经使用Storyboards(选项卡视图模板)创建了一个新的Xcode项目。我在故事板中添加了几个视图控制器,并且想要为静态单元格使用UITableView。我创建了它,但是当我在模拟器中运行时,单元格不显示。除了这个故事板文件,我没有改变任何项目。我正在显示故事板编辑器和模拟器运行的截图。标签显示出来,所以视图加载正确。我将背景颜色设置为灰色,以便可以看到talbeview正在加载。所有单元格都设置为可见。我将他们的风格改为基本版,并对标签进行了编辑,并添加了一个披露指标,就这些了。带有静态单元格的UITableView不会出现

simulator xcode

回答

34

你想使用TableViewController而不是通用视图控制器来试试呢?

+0

虽然我不知道如何让表视图工作,如果它只是一个大视图的子视图,就像我的截图一样。如果我拖动一个表视图控制器,并让它成为整个屏幕,那工作。但如果我想混合和匹配其他UI元素,我不知道。我无法弄清楚如何将它连接到一个表视图控制器。 – adum 2011-12-27 05:13:33

+2

只有将表视图控制器嵌入容器视图中时,才能混合搭配,该容器视图是大视图的子视图。 – Andrew 2013-07-09 17:40:55

+0

我有同样的问题,这是因为从菜单中拖动UINavigationController拖动通用UIViewController默认为表视图的父级。为什么不在默认情况下加载UITableViewController Apple? > _ < – PostCodeism 2014-12-08 20:00:23

101

由于对雷Wenderlich网站声明(在这个帖子:Beginning Storyboards in iOS 5 Part 2节“在工作中的添加球员屏”):关于静态细胞

一件事,他们只在 的UITableViewController工作。故事板编辑器可让您将它们添加到常规UIViewController中的表视图对象 ,但这不会在运行时工作 。这是因为UITableViewController 提供了一些额外的魔法来处理静态单元的数据源。 Xcode甚至会阻止您编译这样的项目 ,并显示以下错误消息:“非法配置:静态表视图是 仅在嵌入UITableViewController实例时才有效”。

有同样的问题,但是这使得事情说清楚......

+1

那么有什么办法可以在UITableView中使用静态单元,它在UIViewController中使用故事板而不需要将UITableView嵌入到故事板中的UITableViewController中?从我在雷的部分读到的 – Das 2012-12-27 20:28:03

+0

是,这是由于检查和非法配置警报而被阻止。所以虽然我不确定我会赌我的钱:No. – EeKay 2013-01-09 11:28:17

+0

@KarenAnne ....不要使用静态单元格。只需使用动态UITableView并将容器UIViewController作为一个委托,然后使用任何静态数组填充UITableView。 – Das 2013-12-15 03:37:23

192

不要执行任何的当您使用静态表视图以下方法:

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

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
} 
+29

这意味着你必须删除所有的实现,而不只是插入空方法:) – asdf 2012-09-18 20:08:17

+0

是的,但我不知道如何摆脱现在说实现不完整的Xcode警告? – wcochran 2013-05-01 22:56:40

+0

@wcochran我会检查你是否在你的界面中声明了这些方法,或者你的类不是UITableViewController的子类。在这种情况下,这两者都可能导致“不完整的实施”警告。 – 2013-05-10 18:46:34

11

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

+1

哇!这就是为什么!我打破了我的大脑,弄清楚为什么前开发人员将UITableViewController放在Container中! – skywinder 2014-02-13 08:25:30

1

我遇到同样的问题,并为我工作的修复是介绍使用performSegue.呈现老办法[[self navigationController] present...]没有造成静态表视图正确加载其细胞静的UITableViewController子类。

相关问题