将布局更改为约束后继承的 IBOutlets 消失

Posted

技术标签:

【中文标题】将布局更改为约束后继承的 IBOutlets 消失【英文标题】:Inherited IBOutlets vanish after changing layout to constraints 【发布时间】:2013-07-11 16:42:40 【问题描述】:

场景:

子 UIViewController 从其父 UIViewController(没有自己的 XIB)继承一些 IBOutlets。 因此,我们将子+父 IBOutlets 链接到子的 Interface Builder (XIB)。

最初,在基于框架的布局范例中,我可以将子 UIViewController 的 XIB 中的两组 IBOutlets 链接为单个列表。

但是,显然,在转换为基于约束的布局后,XIB 看不到继承的 IBOutlets;只能看到本地(文件的所有者)IBOutlets。 也就是说,IB 抱怨文件的所有者(子 UIViewController)没有继承的 IBOutlets。

问题: 1)从父 UIViewController 继承 IBOutlets 是否正确,如果为真,我该如何解决? ...或者,必须在事实上的“文件所有者”(在这种情况下是子 UIViewController)中声明所有 IBOutlets(作为本地 IBOutlets)?

【问题讨论】:

【参考方案1】:

IB 的“文件所有者”与已重命名的残留类相关联。 因此失去了 IBOutlets。

【讨论】:

以上是关于将布局更改为约束后继承的 IBOutlets 消失的主要内容,如果未能解决你的问题,请参考以下文章

只有在将方向更改为横向并返回纵向后,纵向布局才能正确显示

自动布局问题

在自动布局中方向更改为横向时隐藏视图

Bootstrap 4 CSS 导致 Chrome 的打印“布局”消失

自动布局约束在运行时消失

Swift 程序化自动布局约束的问题