通过presentModalViewController添加视图的自动旋转支持?
问题描述:
看来,无论我的应用支持何种取向,当我使用presentModalViewController显示视图时,应用都会捕捉到纵向视图中。如何使用模态视图控制器支持不同的方向?通过presentModalViewController添加视图的自动旋转支持?
答
你存在,使用presentModalViewController控制器:动画:应该支持任何方位,通常使用这种方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
使用这种方法,当你在横向出示您的控制器,它会正确地显示在景观方向也一样。
答
我有同样的问题。我设置了TRUE AutorotateInterfaceOrientation,但是在开始时我的模态视图总是呈现为纵向,即使它是横向。只有当我改变了设备方向(在模拟器中),它的行为才变得正确。但在开始不! 我不知道为什么,但一切都取决于你现在的观点。 例如,如果您使用viewDidLoad方法呈现,则会出现问题。为了解决问题,我从viewDidLoad中调用的方法调用presentModalView(显然,它似乎是同样的事情)。所以,我不喜欢的东西:
- (void) viewDidLoad
{
[super viewDidLoad];
// add this line
[self performSelector:@selector(presentModal) withObject:nil afterDelay:0];
}
-(void) presentModal{
// here present your view
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
这对我的作品
答
我只是在viewDidAppear添加代码解决了这个问题我自己。我认为它没有在适当的方向上显示出来的原因是因为我在viewDidLoad中使用了show modal代码,并且在那一点上,我认为视图刚加载,但方向尚未设置。所以,在viewDidAppear中加入它为我工作。你可能也会有幸在viewWillAppear(因为那个时候,它必须知道方向,边界,大小等等)。