Objective c 如何使UIViewController支持不同的方向

Objective c 如何使UIViewController支持不同的方向,objective-c,rotation,uiinterfaceorientation,Objective C,Rotation,Uiinterfaceorientation,我有两个UIViewController,一个应该只支持纵向,另一个应该同时支持portait和横向。我已尝试重写-(NSUInteger)supportedInterfaceOrientations方法以返回UIInterfaceOrientationMaskPortrait,以及重写shouldAutorotate方法以返回UIViewController的否,该UIViewController应仅支持纵向,但没有任何功能。有人能帮我吗?“什么都没用”的确切意思是什么?纵向+横向VC是否不旋

我有两个UIViewController,一个应该只支持纵向,另一个应该同时支持portait和横向。我已尝试重写
-(NSUInteger)supportedInterfaceOrientations
方法以返回
UIInterfaceOrientationMaskPortrait
,以及重写
shouldAutorotate
方法以返回UIViewController的否,该UIViewController应仅支持纵向,但没有任何功能。有人能帮我吗?

“什么都没用”的确切意思是什么?纵向+横向VC是否不旋转?它卡在哪个方向?肖像画是唯一的风景画吗?二者都最后,您在
Info.plist
文件中支持哪些方向?从UIViewController文档中的
支持的界面方向
:“系统将视图控制器支持的方向与应用程序支持的方向相交[…],以确定是否旋转。”我的意思是,当设备旋转时,UIViewController旋转到横向,当我希望它只支持portait方向时。我支持
Info.plist
文件中的横向和纵向方向。感谢您的澄清。下一个问题:您能否确认您的
supportedInterfaceOrientations
实现是否被调用?同样,在
支持的界面方向的文档中:“[…]系统在根视图控制器或填充窗口的最顶端显示的视图控制器上调用此方法。”因此,如果您的VC是嵌入式的,即未显示,它的
supportedInterfaceOrientations
实现可能会被完全忽略。它正在被调用,现在我正在模拟器中运行应用程序,该方法正在工作,VC不支持横向。但是在我的设备上,VC支持横向。嗯,等等,我刚刚注意到文档中的另一句话:“只有当视图控制器的
shouldAutorotate
方法返回
YES
”时才调用此方法,所以在我的理解中
supportedInterfaceOrientations
毕竟不应该被调用,既然您在
shouldAutorotate
实现中说返回
NO
。很神秘。