似乎无论我在我的应用程序中支持哪些方向,当我使用presentModalViewController显示视图时,应用程序都会进入纵向视图。如何使用模态视图控制器支持不同的方向?
答案 0 :(得分:1)
使用presentModalViewController呈现的控制器:animated:应支持任何方向,通常使用此方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
使用此方法,当您以横向显示控制器时,它也会以横向方向正确显示。
答案 1 :(得分:0)
我有同样的问题。我设置了TRUE AutorotateInterfaceOrientation但是在开始时我的模态视图总是呈现Portrait,即使它是Landscape。只有当我改变了设备方向(在模拟器中)时,它的行为才变得正确。但一开始没有! 我不知道为什么,但一切都取决于你提出的观点。 例如,如果从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;
}
这对我有用
答案 2 :(得分:0)
我刚刚通过在viewDidAppear中添加代码为自己解决了这个问题。我认为它没有出现在我正确方向的原因是因为我在viewDidLoad中有show模式代码,在那一点上,我认为视图刚刚加载但方向尚未设置。所以,在viewDidAppear中添加它对我有用。你可能也会在viewWillAppear中获得好运(因为到那个时候,它必须知道方向,边界,大小等)。