我有一个导航控制器,上面装有一个仅支持纵向的视图控制器:
这提供了一个仅支持横向的全屏视图控制器:
不幸的是,在转换期间,呈现视图控制器上的状态栏被移除,这使得内容在转换开始之前就会加速。我已经实现了自定义淡入淡出过渡以使效果明显:
请注意,状态栏不存在。这是在自定义转换开始之前完成的,没有动画,所以即使我在转换开始之前拍摄快照并将其添加到容器视图,您仍然会暂时看到缩小的导航栏。
有没有一种非可怕的方法来解决这个问题?我不想在转换之外添加快照(例如this answer)。
我尝试过自定义演示风格而不是全屏,但这并不会使设备处于纵向方向。使用自定义呈现样式使设备保持横向方向的解决方案也是可以接受的。
有一个展示问题here
的示例项目答案 0 :(得分:0)
可能是一个太可怕的黑客,但如果它是令人讨厌的视图,而不是状态栏消失本身你可以改变约束,以便顶部不受限于顶部布局指南,而是限制在superview顶部与适当的常数?
答案 1 :(得分:0)
我可能会遗漏一些东西,但是在转换看起来更好之前隐藏了吧?
self.navigationController?在prepareForSegue中为navigationBarHidden = true,并在viewWillAppear中将其重新打开