我的应用有问题。我无法锁定我的应用程序的方向。我需要做的就是将一个视图控制器锁定到横向模式,其余的都是纵向。
这是我的应用程序的层次结构。
*Navigation Controller
*TabBarController
*ViewControllers
答案 0 :(得分:0)
您只需要从NO
返回shouldAutorotate
,从supportedInterfaceOrientation
返回横向广告。
另一方面,从NO
方法返回shouldAutorotate
,纵向方向也从supportedInterfaceOrientation
返回。
在所有viewControllers中:
-(BOOL)shouldAutorotate {
return NO;
}
在你想要的风景中:
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}
在您想要的纵向控制器中:
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}
答案 1 :(得分:0)
使用以下2方法将设备方向锁定为横向。
- (NSUInteger)supportedInterfaceOrientations{
[super supportedInterfaceOrientations];
return (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight);
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight)
{
return YES;
}
// Return YES for supported orientations
return NO;
}
答案 2 :(得分:0)
使用NavigationController
-(BOOL)shouldAutorotate
-(NSUInteger)supportedInterfaceOrientations
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
如果使用'show segue(push)',则永远不会调用这些方法。
将segue'showDetail'改为'show'