【问题标题】:why IB sometimes doesn't add a subview to a view controller为什么 IB 有时不会向视图控制器添加子视图
【发布时间】:2013-04-10 05:58:33
【问题描述】:

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

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

我很确定我可以以编程方式执行此操作(这是我接下来要尝试的),但我想知道这是否有原因(以及是否有解决方法)。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 哦我想我现在明白了.. 基本上我的MailBoxViewController 是UITableViewController 的子类.. 所以我应该让它成为一个通用UIViewController 的子类,然后做剩下的那里的工作.. 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多