我的应用的iPhone版本支持UIDeviceOrientationPortraitUpsideDown
和UIDeviceOrientationPortrait
,但iPad版本支持所有方向。
在我的视图控制器中,我有这个:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
我的Info.plist文件包含:
问题在于,当我将应用程序构建到iPod时,应用程序不会颠倒过来。 iPad将支持所有方向。
我已尝试将shouldAutorotateToInterfaceOrientation
全部删除,我尝试过此代码:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation = UIDeviceOrientationLandscapeLeft) && (interfaceOrientation = UIDeviceOrientationLandscapeRight) && (interfaceOrientation = UIDeviceOrientationPortraitUpsideDown) && (interfaceOrientation = UIDeviceOrientationPortrait);
}
但由于某种原因,颠倒只是行不通!还有其他解决方案吗?
编辑:使用Xcode 4.5 iOS6
答案 0 :(得分:3)
想出来,iOS6 SDK使用shouldAutorotate
所以这是我的新代码:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
-(BOOL)shouldAutorotate {
return YES;
}
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
答案 1 :(得分:0)
如果我理解正确,您希望iPad支持所有方向,同时您希望iPhone支持上下颠倒和纵向旋转。试试这个解决方案。 (这比你上面做的更简单)
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
return YES;
}
else {
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
}
我还想补充一点,你必须将它添加到每个单独的视图控制器中,以便它也可以旋转到另一个视图。
例如,假设我有viewcontroller_1和viewcontroller_2,我必须进入控制器的两个.m文件并添加以下代码。如果你不这样做,它可能不会旋转其中一个视图。
答案 2 :(得分:0)
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
IOS 6
中的此方法已弃用,因此您可以使用以下方法代替它。
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
根据你的回归方向。
答案 3 :(得分:0)
支持方向的另一种方法是继承UINavigationController并在那里添加方向代码
即
//IOS 5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return YES;
}
//IOS 6
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
这对我有用,使用故事板