在设备旋转后设置前一个视图控制器的布局
Posted
技术标签:
【中文标题】在设备旋转后设置前一个视图控制器的布局【英文标题】:Set layout of previous view controller after device rotation 【发布时间】:2015-04-09 03:23:17 【问题描述】:我有一个UIViewController
vc2
,它位于vc1
之后的导航堆栈上。当我在vc2
上旋转设备时,我需要vc1
来更新它的用户界面。但是,当我尝试在 willAnimateRotationToInterfaceOrientation
中执行此操作时,它不起作用。
从堆栈中弹出vc2
后,我尝试在viewWillAppear
或viewDidLoad
中更新vc1
UI,但它不起作用。如果我在viewDidAppear
或viewWillLayoutSubviews
中执行此操作,它会起作用,但它仅在视图出现后更新 UI,以便用户可以在屏幕上看到它的动画。
有没有办法在视图出现之前设置它,以便用户看不到子视图的动画?
【问题讨论】:
您找到解决方案了吗?我有同样的问题。我需要更新导航堆栈上前一个视图控制器的布局,然后它才能在自定义转换中可见。 @Sebastian Nah 我还没有。我目前在 viewDidAppear 中有它,但作为状态它在视图控制器出现后动画。 【参考方案1】:到目前为止,我发现唯一可行的解决方案是我在问题中提到的在viewDidAppear
或viewWillLayoutSubviews
中更新 UI 的解决方案。不幸的是,当视图控制器出现时,您会看到 UI 组件在屏幕上的正确位置上显示动画。希望有人能找到更好的解决方案。
【讨论】:
以上是关于在设备旋转后设置前一个视图控制器的布局的主要内容,如果未能解决你的问题,请参考以下文章
iOS8 - 在 UINavigationController 上推送 UIViewController 并旋转设备后,以前的视图控制器中的大小错误