【问题标题】:Copy and paste storyboard controller into xib file. Supported or not?将情节提要控制器复制并粘贴到 xib 文件中。支持与否?
【发布时间】:2014-03-11 01:01:37
【问题描述】:

我想将故事板控制器重构为单独的 xib,以获得更好的可重用性。 控制器扩展了 UITableViewController。

我可以在情节提要中选择控制器,点击 Cmd-C,使用新建文件向导创建一个空的 xib 文件,最后将控制器粘贴到 xib 中。

它似乎工作正常。 UI 元素在那里,插座在那里等。它忘记了方向和大小(纵向,Retina 4 英寸),但我可以在 xcode 右侧的属性窗格中轻松设置。

但是,当尝试使用此 xib 时,我遇到了崩溃并显示错误消息:

已加载“MyController”笔尖,但未设置视图出口。

当我尝试将 Files Owner 连接到表视图(这是从 UITableViewController 扩展的控制器中的顶视图)时,xcode 不会让我连接它们。

我的问题:是否不支持将控制器从情节提要复制粘贴到 xib?

【问题讨论】:

    标签: ios objective-c xcode


    【解决方案1】:

    您很可能会将 tableViewController 卡在 nib 中,并且没有将视图挂钩的出口。当您在情节提要中执行 Ctl-C 时,请确保您复制的是 UITable 而不是 UITableViewController。如果没有,您可以尝试在控制器中手动创建插座,但您可能必须跳过箍才能使其工作。

    【讨论】:

    • 谢谢,但是如果我只复制 UITableView,我会不会失去所有的插座和其他与控制器的连接?我想重新连接它们并不是一件大事;)但问题是,复制和粘贴整个控制器是否意味着工作?
    • 是的,它可以工作。我已经做过很多次了,但在你的情况下,你没有粘贴适合你放置的东西。您将丢失链接,并且您可能还需要稍微更改您的控制器,因为您将从UITableViewController 变为UIViewController <UITableViewDelegate, UITableViewDatasource>。您还必须将 tableView 链接到 IBOutlet
    • 谢谢,您能详细说明为什么 UITableViewController 不适合 xib 吗?是不是和self.view属性没有正常暴露有关系?
    • 我最终创建了一个故事板。将我的 UITableViewController 复制并粘贴到新的故事板中效果很好。什么都没有丢失,我实现了能够重用我的控制器的目标。
    • 这是因为据我所知,xib 不能包含控制器的图形表示,但情节提要可以。这就是为什么将它复制到另一个故事板时完美无缺的原因。
    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多