我的应用是universal application
,支持纵向和纵向倒置。
我的应用使用的UITabBarController
UINavigationControllers
代表3 UITabBarItems
。
为了支持这些,我做了以下事情:
1)相应地为两个设备添加了"supported Interface Orientations"
密钥
2)在app delegate和所有其他视图控制器中添加以下代码
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}
在iPad上,一切都如预期的那样,但在iPhone上,只有我的一些观点(并非所有观点)都没有对方向的变化作出反应。!!为什么会发生这种情况?
答案 0 :(得分:0)
您应检查所有视图控制器是否已定义轮换,然后您应将其添加到它们:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}
答案 1 :(得分:0)
如果您正在使用导航控制器,则应创建子类.i.e。 “MyNavController”及其实现中的旋转指令:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}
然后使用它:
MyNavController *navo = [[MyNavController alloc] initWithRootViewController:myRootController];
答案 2 :(得分:-3)
据我所知,在纵向模式下颠倒iPhone是不允许的,因为当用户接到电话时,应用程序处于暂停状态并且他将手机颠倒了。这就是苹果不想要的原因。