强制视图控制器上的特定旋转模式

时间:2014-03-06 08:50:36

标签: iphone ipad ios7 orientation-changes

您好我有以下情况:

1)ViewControllerA>>推送ViewControllerB

2)在ViewControllerB中我有3个按钮,分别是AUTO,LANDSCAPE,PORTRAIT。

3)如果用户点击AUTO按钮,特定视图控制器应始终在PORTRAIT + LANDSCAPE模式下可见,具体取决于方向模式

4)如果用户点击LANDSCAPE按钮,则无论设备的方向如何,特定视图控制器应始终在LANDSCAPE模式下可见。

5)如果用户点击PORTRAIT,无论设备的方向如何,特定视图控制器应始终在PORTRAIT模式下可见。

在特定视图控制器上强制定位

我正在使用适用于iPad和iPhone的iOS 7.0。

尝试了Stack Overflow上的许多链接,但都给出了6.0的建议,而这些建议在7.0中无法解决

有人可以建议我如何实现这个目标。

2 个答案:

答案 0 :(得分:1)

这是有效但不完美的:

force landscape ios 7

仍然需要检查它是否是私有API,因为这可能会导致问题..

嘿RAJA我之前已经尝试过这个链接:Force Landscape Orientation on iOS 6 in Objective-C

但这也不完美.... [肯定会尝试改变一些代码可能会起作用]

答案 1 :(得分:1)

试试这个..

在Appdelegate中将property orientationStyle创建为nsinteger,并根据按钮单击从ViewControllerB更改orientationStyle的值。

在Appdelegate中添加以下方法。

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
switch (orientationStyle) {
    case 0:
        return UIInterfaceOrientationMaskPortrait;
        break;
    case 1:
        return UIInterfaceOrientationMaskLandscape;
        break;
    case 2:
        return UIInterfaceOrientationMaskAll;
        break;

    default:
        return UIInterfaceOrientationMaskAll;
        break;
}
}

希望它能帮到你