IOS 7:透明Viewcontroller背景在另一个ViewController上具有不同的Orientation行为

时间:2014-06-22 05:10:15

标签: ios iphone ios7 uiviewcontroller transparent

我有2个ViewControllers(IOS7),我想在第一个上显示第二个,具有透明背景和不同的方向行为。

例如:按下第一个ViewController上的按钮将调出第二个ViewController,但第一个仍将在第二个ViewController的透明区域的背景上可见。 如果我只旋转手机,第二个ViewController将会旋转,而第一个ViewController将在同一个方向上保持旋转状态。

有什么建议吗? 谢谢!

1 个答案:

答案 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;
}