我正在呈现模态ViewController,其ModalPresentationStyle设置为UIModalPresentationStyle.CurrentContext,以在背景上显示父视图。令我困惑的是当我试图改变iPad方向时,在父控制器保持原始方向的同时正确调整模态视图的大小。
问题是我可以将方向更改通知转发给父控制器,还是强制它以新方向重新布局?
答案 0 :(得分:0)
您应该通知您的父母控制器有关方向更改的信息。在ios5或类似的情况下,此行为已更改。例如:
NSNotificationCenter.DefaultCenter.PostNotificationName("changeOrientation", null);
当您的方向发生变化时,这是您应该从模态控制器发送的通知。父控制器应在显示模态控制器之前或在ViewDidAppear方法中订阅此通知。
this.orientationObserver = NSNotificationCenter.DefaultCenter.AddObserver("changeOrientation", HandleRotation);
...并在隐藏模态控制器后或在ViewWillDisappear方法中取消订阅(如果在ViewDidAppear中订阅)。
NSNotificationCenter.DefaultCenter.RemoveObserver (this.orientationObserver);
这种方法的好处是因为模态控制器中的父控制器没有直接的反射,反之亦然。