【问题标题】:Compile error trying to perform popover segue from a dynamic UITableViewCell编译错误尝试从动态 UITableViewCell 执行 popover segue
【发布时间】:2013-05-11 16:57:57
【问题描述】:

我正在尝试使用 popover segue 将动态 UITableViewCell 连接到情节提要中的导航控制器。
为此,我将 ctrl 从单元格拖动到导航控制器,选择“popover”作为 segue,然后为其分配一个标识符。这样segue的锚点就变成了cell。

使用此配置,我从编译器收到此错误:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x40114c920  <IBProxyObject: 0x40114c540> => anchorView => <IBUITableViewCell: 0x4012576c0>>

我想要做的只是在每次选择一个单元格时打开一个弹出框控制器。 如果我尝试做同样的事情但指定另一种类型的 segue(推送或模态......),则没有错误。我已经尝试从头开始创建一个仅包含所需组件的新示例项目,但错误仍然存​​在。

感谢阅读。

【问题讨论】:

  • 我认为这是不可能的。我也遇到过这个问题,看来您不允许将弹出框锚定到动态单元格。
  • redlmar 是对的,检查这个 SO 线程 stackoverflow.com/q/9236621/2315974
  • 谢谢你给我指点这个话题。我不太明白的是为什么允许使用任何其他类型的segue(例如模态或推送)创建相同类型的连接,但不允许使用popover segue......应该有什么区别?对不起,如果这个问题看起来很奇怪,但我是故事板的新手。
  • ...我的意思是,我尝试使用模态 segue 将动态单元与控制器连接起来,它可以工作

标签: ios uitableview storyboard segue


【解决方案1】:

简单的解决方案是将弹出框锚点更改为您视图中的其他“静态”。在我的例子中,一个 UIBarButtonItem 是“添加”动作的锚点。

这是通过从 Anchor 框右侧的圆圈拖动到情节提要上您希望用作锚点的项目来完成的。

【讨论】:

  • 在运行时,您可以实现prepareForSegue… 将弹出框的源更改为您真正想要的视图
  • 完美,谢谢!如果苹果给出比“编译失败”更好的错误,那当然会很好;)
【解决方案2】:

查看您的 UI,您似乎正在为 iPhone 创建一个应用程序,并且弹出框转场仅适用于 iPad。这可能是原因。

【讨论】:

  • 是一个通用应用程序,我有 2 个不同的故事板(一个针对 iPad,一个针对 iPhone)。我附上的屏幕截图适用于 iPad。
猜你喜欢
  • 2012-08-27
  • 2012-11-30
  • 2012-06-08
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多