ios - UINavigationController pop 重置 Root View Controller 的框架

标签 ios objective-c uinavigationcontroller autolayout

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/

相关文章:

ios - 我是否需要拥有 Apple 开发者帐户才能实现与 Game Center 的交互?

javascript - 如何在iOS中绘制特殊折线条形图(引用我的图)

ios - 获取 JSON 并尝试解析它时出错 [iOS]

ios - UIProgressView 约束问题

ios - 使用观察者发出信号量?

ios - 如何使用 CoreBluetooth 读取后台 BLE 中的特征

java - 将 Objective-C 编译为 Java

iphone - nib-less iOS 应用没有用户交互

ios - 使用滑动手势关闭 View Controller 时的自定义动画

swift - 使用协议(protocol)关闭 UINavigation 时如何收到通知?