Interface Builder 设置为使用自动布局,但没有为我的 Root View Controller 设置任何约束。我有一个按钮可以在 Root View Controller 中移动 View 。当我将一个新的 View Controller 插入堆栈并随后将其弹出时, Root View Controller 上的 View 框架将重置为其起始位置。
关于为什么会发生这种情况的任何理论?
最佳答案
当您使用自动布局时, View 的框架由您设置的约束决定。如果您不修改约束而是手动更改 View 的框架,那么下次布置 View 时,它们的框架将再次由设置在它们上的约束决定(并且有一次发生在您的 View 之前 Controller 的 View 出现在屏幕上,这就是您所看到的)。
如果您希望这些框架更改在布局发生后保持不变,您应该修改您的约束(通过更改它们的 constant
值或用全新的值替换它们)而不是 View 的框架。
关于ios - UINavigationController pop 重置 Root View Controller 的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24669682/