UITableViewController外部的静态表视图


159

新的Xcode更新后,我的应用程序未验证并显示此错误:

静态表视图仅在嵌入UITableViewController实例时才有效

有机会轻松解决吗?


取决于您为什么使用UIViewController子类而不是UITableViewController。
David Berry

3
因为我需要视图中不属于UITableViewController的其他元素
Francesco S

1
在这里遇到同样的问题。刚刚升级(或降级,到目前为止)到Xcode 5.1,我也遇到了同样的问题。我的UISplitViewController内的UITableViewController子类中有一堆静态单元格。
Stefan Arambasich 2014年

升级后,我也开始发生这种情况。我确实有一些用静态单元格构造的视图控制器,这不是理想的方法,但是以前工作得很好。
jdmunro 2014年

您不需要使用UITableViewController。如果您的UiTableView中有“静态”表视图单元格,则会出现此错误,因此,我认为一种简单的解决方案是:如果需要这些单元格,请不要将其保持静态。只需添加tableview委托和数据源以及虚拟UITableViewDelegate方法
EarlySun,2017年

Answers:


341

在同一屏幕上获取静态UITableView和其他控件的唯一方法是使用容器视图。按照这种方式,它可以完美地工作:

  1. 将ViewController拖到故事板上。
  2. 将TableViewController拖到故事板上。
  3. 接下来,将容器视图拖到ViewController上,并使其大小达到所需大小(小于视图)->拖动容器视图时,将创建一个segue和另一个视图。删除该segue和视图。
  4. 然后,最后按住Ctrl键单击您的容器,然后拖动到新的TableViewContoller。选择嵌入。
  5. 以所需方式对TableView进行样式设置->包括静态单元格。

祝好运。

此答案已经找到并在此处给出:G.Huebner-> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cells-only-work-in-a-uitableviewcontroller.html


在哪里采取行动或采取行动?在UIViewController或者我应该拿UITableViewController
巴文·拉玛尼

@Bhavin Ramani:因为它是容器中的UITableViewController,所以我建议完全使用该类/子类来保存IBOutlets。
LukeSideWalker '16

2
我猜整个“静态单元”的想法是通过某种方式实现的,具体取决于的某些内部功能UITableViewController
Nicolas Miari

2
这次真是万分感谢。可以确认它在Xcode 8.3.1中工作。
Atharva Vaidya'5

太棒了!我正在寻找这种解决方案已有一段时间了。
杰森·福利亚

8

静态UITableView必须在UITableViewController中。因此,您将表放在了UITableViewController中,然后将其作为childView添加到MainViewController中。

您可以参考 https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html


1
以前有很多方法可以解决此问题(例如保留单元格),但是现在无论如何都是错误的。我认为问题是在暗示是否有办法抑制错误。
Matthew Knippen 2014年

是的 不幸的是,我最终使用非静态tableView解决了问题
Francesco S

1
kes。由于IBOutlet我的视图控制器文件中的所有s,需要转换为非静态的返工量太多,而且IMO在没有更改日志的情况下,在没有警告或注意的情况下中断此更新是不可接受的(因此,我认为在纸上保留UITableViewController静态单元格在纸上仍然是完全有效的,UISplitViewContoller我已经与Apple的开发人员联系,但只收到了一般性的帮助不大的电子邮件回复,将我链接到论坛。我想我会在那里尝试看看如果有人在更新后遇到相同的问题
Stefan Arambasich 2014年

4

我认为您正在做的是先拖动情节提要上的ViewController,然后再拖动ViewController上的tableView。这样,您将无法使用静态表格单元格。取而代之的是,您应该拖动主情节提要板上的TableViewController而不是ViewController,然后选择静态单元格。这样,您就可以在静态单元格上工作,并且可以在静态单元格上使用任何元素。


0

好吧,如果您确实在使用静态tableView,则应考虑将所有内容复制/粘贴到ScrollView或StackView。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.