你真的可以将约束链接到完全不同的视图控制器吗?
Posted
技术标签:
【中文标题】你真的可以将约束链接到完全不同的视图控制器吗?【英文标题】:Can you actually link constraints to utterly different view controllers? 【发布时间】:2017-11-11 14:47:20 【问题描述】:假设您有一个屏幕,其中包含许多视图控制器(带有容器视图或其他)。
(如果您愿意,可以想象一个 iPad 应用程序有许多大而复杂的区域,每个区域都有自己的用于列表、控件等的子容器视图)
甚至 - 可能是您的 VC 被隐藏、滑出屏幕,甚至可能只是在缓存中而没有呈现,或者您可能有许多屏幕“堆叠”在一起,所以有些屏幕甚至没有可见。
所以说你有一个观点v
var v: UIView
在其中一个视图控制器中,以及一个视图 w
var w: UIView
在一个完全不同的视图控制器中。
出于某种原因,您希望这两个项目在屏幕上具有相同的宽度。
事实上。你能 NSLayoutConstraint 一个到另一个吗??
(显然你不能在故事板中;这没什么大不了的。你可以在布局时用代码来做。)
这可能吗?
当其中一个 VC 消失时是否会引起问题(比如)?
(实际上约束会导致硬引用吗?)
这是怎么回事?
【问题讨论】:
控制器视图和其他视图一样。在它们之间创建约束没有问题。 【参考方案1】:是的,只要您的视图都是同一视图层次结构的一部分,它就会起作用。它们是 childViewControllers 并不重要,一切都与普通子视图一样工作。
您只能向已添加到同一视图的视图添加约束,如果您尝试向尚未添加的视图添加约束,则会出现异常。
如果您删除任何视图,它们相关的约束也将被删除。
【讨论】:
以上是关于你真的可以将约束链接到完全不同的视图控制器吗?的主要内容,如果未能解决你的问题,请参考以下文章