【问题标题】:Static table view outside UITableViewControllerUITableViewController 之外的静态表格视图
【发布时间】:2014-04-17 08:06:21
【问题描述】:

新的 Xcode 更新后,我的应用没有验证并显示此错误:

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

有机会轻松解决吗?

【问题讨论】:

  • 取决于你为什么使用 UIViewController 子类而不是 UITableViewController。
  • 因为我需要视图中不属于 UITableViewController 的其他元素
  • 在这里遇到同样的问题。刚刚升级(或降级,目前看来)到 Xcode 5.1,我有同样的问题。我的 UISplitViewController 内的 UITableViewController 子类中有一堆静态单元格。
  • 升级后也开始发生在我身上。我确实有一些用静态单元格构建的视图控制器,它并不理想,但它之前工作正常。
  • 你不需要使用 UITableViewController。如果 UiTableView 中有静态表格视图单元格,则会出现此错误,因此我认为一个简单的解决方案是,如果您需要这些单元格,请不要将其保留为静态。只需添加 tableview 委托和数据源以及虚拟 UITableViewDelegate 方法

标签: ios iphone xcode cocoa-touch


【解决方案1】:

在同一屏幕上获取静态 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。
  • 我猜整个“静态单元格”的想法是通过某种方式实现的,这取决于UITableViewController 的一些内部功能。
  • 谢谢你。可以确认它在 Xcode 8.3.1 中有效。
  • 太棒了!我一直在寻找这个解决方案。
【解决方案2】:

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

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

【讨论】:

  • 以前有很多方法可以解决这个问题(例如保留单元格),但现在无论如何都是错误的。我认为这个问题是在暗示是否有办法抑制错误。
  • 是的。不幸的是,我最终使用非静态 tableView 解决了这个问题
  • 哎呀。由于我的视图控制器文件中的所有IBOutlets 太多,它需要转换为非静态的返工量太多,而且 IMO 不接受更新打破这个而没有警告或在更改日志(我认为在UITableViewController 内有一个UITableViewControllerUISplitViewContoller 内的静态单元格在纸上仍然是完全有效的。我已经联系了Apple 的开发人员支持,但只收到了一封通常不太有用的电子邮件回复,将我链接到论坛. 我想我会在那里尝试,看看是否有其他人在更新后遇到同样的问题。
【解决方案3】:

我认为您正在做的是首先将 ViewController 拖到情节提要上,然后将 tableView 拖到 ViewController 上。这样您就不能使用静态表格单元格。而不是这个,你应该做的是在主故事板上拖动 TableViewController 而不是 ViewController,然后选择静态单元格。通过这种方式,您可以在静态单元格上工作,并且可以在静态单元格上使用任何元素。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2013-07-13
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多