2012-07-05 59 views
0

我正在呈现ModalPresentationStyle设置为UIModalPresentationStyle.CurrentContext的模态ViewController,以便在后台具有父视图。真正让我困惑的是,当我试图改变iPad方向时,模式视图在父控制器保持原始方向时被正确调整大小。模态视图控制器与单点触摸方向

问题是我可以将方向更改通知转发给父控制器,还是迫使它以新方向重新布局?

回答

0

您应该通知您的父母控制器关于方向更改。这种行为在ios5或类似中发生了变化。例如:

NSNotificationCenter.DefaultCenter.PostNotificationName("changeOrientation", null); 

这是您应该从模态控制器发送方向更改时发送的通知。父控制器应该在显示模态控制器之前或在ViewDidAppear方法中订阅此通知。

this.orientationObserver = NSNotificationCenter.DefaultCenter.AddObserver("changeOrientation", HandleRotation); 

...并取消订阅模式控制器隐藏后或ViewWillDisappear方法(如果在ViewDidAppear订阅)。

NSNotificationCenter.DefaultCenter.RemoveObserver (this.orientationObserver); 

这种方法的好处在于模式控制器中不存在对父控制器的直接反应,反之亦然。

+0

我不明白它会如何帮助我改变父母控制器的方向......当方向改变时,我可以从模态控制器中触发事件或其他东西。我想弄清楚的是如何让父控制器自动重新布局子视图 – 2012-07-10 04:52:07