我有2个ViewControllers(IOS7),我想在第一个上显示第二个,具有透明背景和不同的方向行为。
例如:按下第一个ViewController上的按钮将调出第二个ViewController,但第一个仍将在第二个ViewController的透明区域的背景上可见。 如果我只旋转手机,第二个ViewController将会旋转,而第一个ViewController将在同一个方向上保持旋转状态。
有什么建议吗? 谢谢!
答案 0 :(得分:0)
您可以在第一个开始时以模态方式呈现第二个ViewController,第一个具有类型为 UIModalPresentationCurrentContext 的 modalPresentationStyle 。
如果你的第一个ViewController嵌入在像UINavigationController这样的ContainerViewController中,你必须在那个上设置modalPresentationStyle,并且需要在其上显示第二个ViewController。
在你的第一个ViewController中,它看起来像:
- (void)buttonTapped:(id)sender {
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.navigationController presentViewController:[SecondViewController new] animated:YES completion:nil];
}
当然,您还必须为支持的接口方向配置/实现所需的行为。例如,通过覆盖第二个ViewController中的 supportedInterfaceOrientations(),如下所示:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}