Ios UINavigationController pop重置根视图控制器的帧

Ios UINavigationController pop重置根视图控制器的帧,ios,objective-c,uinavigationcontroller,autolayout,Ios,Objective C,Uinavigationcontroller,Autolayout,Interface Builder设置为使用autolayout,但没有为我的根视图控制器设置任何约束。我有一个在根视图控制器中移动视图的按钮。当我将新的viewcontroller推到堆栈上并随后将其弹出时,根视图控制器上视图的帧将重置为其开始位置 有没有关于为什么会发生这种情况的理论 使用“自动布局”时,视图的框架由设置的约束确定。如果您不修改约束,而是手动更改视图的框架,那么下次布局视图时,它们的框架将再次由设置在它们上的约束决定(有一次是在视图控制器的视图显示在屏幕上之前,这就是您看到的

Interface Builder设置为使用autolayout,但没有为我的根视图控制器设置任何约束。我有一个在根视图控制器中移动视图的按钮。当我将新的viewcontroller推到堆栈上并随后将其弹出时,根视图控制器上视图的帧将重置为其开始位置


有没有关于为什么会发生这种情况的理论

使用“自动布局”时,视图的框架由设置的约束确定。如果您不修改约束,而是手动更改视图的框架,那么下次布局视图时,它们的框架将再次由设置在它们上的约束决定(有一次是在视图控制器的视图显示在屏幕上之前,这就是您看到的)


如果希望在布局发生后保持这些帧更改,则应修改约束(通过更改其
常量
值或将其替换为全新的值)而不是视图的框架。

Xcode是否会自动向不包含任何约束的场景添加约束?@WFT如果您的故事板设置为使用自动布局,则选择“是”。