为什么IB有时不会将子视图添加到视图控制器

时间:2013-04-10 05:58:34

标签: objective-c xcode uiview uiviewcontroller interface-builder

有时,IB根本不允许您将视图作为子视图添加到UIViewController,如此处所示enter image description here

如果我从对象库中拖动UIViewController并尝试将其嵌入到邮箱视图控制器中...它不会突出显示,但是如果我尝试将其添加到底部的通用视图控制器中它会正常工作(可以邮箱视图控制器具有客户类 MailboxViewController 的事实与它有什么关系?)

我很确定我可以通过编程方式执行此操作(这是我接下来会尝试的)但是我想知道是否有这样的原因(如果有办法解决它)。

更新 这就是我想要实现的目标:我正在按照步骤here在搜索栏下面实现一个分段视图控制器,就像在iphone mail app中一样..但是我一直在收到错误,说明了视图一次只能属于一个视图控制器。所以我要做的就是创建一个单独的视图控制器,从MailboxViewController引用它作为插座,使我的搜索区域的包含视图成为视图这个新的视图控制器(这是我被卡住的地方),最后使searchContentsController属性UISearchDisplayController引用这个新视图控制器的视图。 (如果这听起来令人困惑,我知道它确实如此,请参阅此answer

1 个答案:

答案 0 :(得分:0)

从屏幕截图中,邮箱视图控制器的view属性是表格视图。

接口构建器中的表视图不支持将任意视图作为子视图放到它上面 - 它会在运行时将它们放在哪里?在IB中,表格没有内容,它只是具有单元格的可视化表示,让您知道它是什么。

您还没有说出您要设置的内容,因此我无法提供任何其他帮助。以编程方式将子视图添加到表视图可能不会产生您之后的效果 - 表视图是UIScrollView子类,因此您的新视图将移出屏幕或被表视图添加单元格掩盖。