我有UIPresentationController
在主视图上显示侧边菜单,固定宽度为300.然后,从侧边菜单中,用户可以打开全屏模式视图。当模态视图被解除时,菜单视图在解雇动画期间填充屏幕(这是错误的)。在动画结束时调用containerViewWillLayoutSubviews
并且菜单将其宽度更正为300。
我确实实施了frameOfPresentedViewInContainerView
。我也在菜单视图中实现shouldPresentInFullscreen
返回NO(虽然这似乎不会影响我能确定的任何内容)。
为什么在dismssal动画之前没有调用containerViewWillLayoutSubviews
?在覆盖和显示菜单视图时,如何保持菜单视图的宽度?
答案 0 :(得分:0)
感谢riadhluke指导我UIPresentationController changes size when another view controller is displayed on top of it
我的解决方案在我的菜单prepareForSegue
UIViewController *destination = [segue destinationViewController];
if (destination.modalPresentationStyle == UIModalPresentationFullScreen) {
destination.modalPresentationStyle = UIModalPresentationOverFullScreen;
}
强制全屏模式演示超出全屏,导致菜单不会丢失,因此不会在解雇动画后重新布局。