Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS方向支持特定屏幕上的横向和纵向-并非所有屏幕_Ios_Iphone_Ios7_Xcode5_Ios7.1 - Fatal编程技术网

iOS方向支持特定屏幕上的横向和纵向-并非所有屏幕

iOS方向支持特定屏幕上的横向和纵向-并非所有屏幕,ios,iphone,ios7,xcode5,ios7.1,Ios,Iphone,Ios7,Xcode5,Ios7.1,同志们, 我只是想知道,如何仅在特定屏幕上启用横向定向?到目前为止,我在常规设置中选择了横向左侧和右侧选项,并在plist文件中的支持界面方向(iPhone)中启用了设备方向,但这会影响所有屏幕 我的应用程序中有将近80个屏幕,我需要同时支持纵向和横向大约5个屏幕,其余的屏幕应该只在纵向模式下显示 非常感谢您的帮助 谢谢, Ramesh在常规设置中(仅调整plist),您需要选择所有可能支持的方向。然后,需要在特定的视图控制器中限制它们。如果您使用的是NavBar或TabBar控制器,则需要在其

同志们,

我只是想知道,如何仅在特定屏幕上启用横向定向?到目前为止,我在常规设置中选择了横向左侧和右侧选项,并在plist文件中的支持界面方向(iPhone)中启用了设备方向,但这会影响所有屏幕

我的应用程序中有将近80个屏幕,我需要同时支持纵向和横向大约5个屏幕,其余的屏幕应该只在纵向模式下显示

非常感谢您的帮助

谢谢, Ramesh

在常规设置中(仅调整plist),您需要选择所有可能支持的方向。然后,需要在特定的视图控制器中限制它们。如果您使用的是NavBar或TabBar控制器,则需要在其中添加限制

从UIViewController文档:

在iOS 6及更高版本中,您的应用程序支持在应用程序的Info.plist文件中定义的界面方向。视图控制器可以替代supportedInterfaceOrientations方法以限制支持的方向列表。通常,系统仅在窗口的根视图控制器或显示以填充整个屏幕的视图控制器上调用此方法;子视图控制器使用其父视图控制器为其提供的窗口部分,不再直接参与有关支持哪些旋转的决策。应用程序的方向遮罩和视图控制器的方向遮罩的交点用于确定视图控制器可以旋转到哪些方向

为了简化这个过程,我在UINavigationController上创建了一个类别,它查看最顶层的视图控制器,以确定其旋转能力。这样,在需要旋转的特定视图控制器中,我可以覆盖这些方法并添加横向支持

@implementation UINavigationController (AutoRotation)

- (NSUInteger)supportedInterfaceOrientations
{
    return [self.topViewController supportedInterfaceOrientations];
}

- (BOOL)shouldAutorotate
{
    return [self.topViewController shouldAutorotate];
}

@end

您的屏幕是否位于
UINavigationController
内?如果是这样,我注意到并非所有的视图控制器都可以决定它们支持的方向。

对不起,您想在所有视图控制器中添加这两种方法吗?您好,我正在框架上构建此应用程序。我们的框架扩展了UIViewController,并扩展了FramewworkUIViewController类来设计屏幕。我向FrameworkUIViewCOntroller添加了一个类别,并添加了supportedInterfaceOrientation以仅锁定纵向模式,但这不起作用:(…我记不清我到底做了什么,但在我的关键视图控制器中(与父视图控制器一样,我将
shouldAutorotate
设置为false。然后在子视图控制器中,我要旋转的视图控制器将
shouldAutorotate
设置为true。然后,您还可以将
supportedInterfaceOrientations
添加到子视图控制器中,以精确指定要支持的旋转。是否加载FrameworkUIViewController进入导航或制表符控制器?如果是,类别必须在UINavigationController/UITableController上(如上面的示例中)然后,
shouldAutoRotate
声明出现在为屏幕提供内容的特定视图控制器中。作为控制器,UINavigationController有自己的旋转规则,因此通过添加类别并将旋转规则放置到普通视图控制器中,导航控制器从中获取其旋转规则的最顶层子级。允许所有方向,然后仅在您想要的方向上强制纵向…是否要为每个屏幕添加它以强制纵向?换句话说,您希望我将其写入75个屏幕以仅强制纵向?您好,我正在一个框架上构建此应用程序。我们的框架扩展了UIViewController,我们扩展了FramewworkUIView控制器类来设计屏幕。我向FrameworkUIViewCOntroller添加了一个类别,并添加了supportedInterfaceOrientation以仅锁定纵向模式,但这不起作用:(。。。