我做了一些研究,但似乎找不到让我的navigationController的rootViewController在启动时正确的答案。我原来的问题在这里:launch orientation of iPad is incorrect for landscape orientation (upside down)。
在我的info.plist中,我将它设置为支持横向方向。如果我将rootViewController更改为:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// return UIInterfaceOrientationIsLandscape(interfaceOrientation); // original that does not work
return YES;
}
然后我的应用程序以正确的方向开始。但是,我不想支持肖像模式。我只想支持景观模式。我以为我可以通过这样的方式强制方向并防止它切换到纵向模式:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
UIDeviceOrientation orientation = UIInterfaceOrientationLandscapeLeft;
[UIApplication sharedApplication].statusBarOrientation = orientation;
}
else {
}
但这并不妨碍应用程序旋转到纵向模式。是否可以强制定位?为了使启动方向正确(仅限横向模式),我还需要做些什么吗?谢谢!
答案 0 :(得分:1)
我刚刚创建了一个示例项目,将我的支持接口方向(iPad)设置为Landscape Left和Landscape Right(在info.plist中)。
然后我用了:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
它工作正常。无论我如何旋转它都被迫风景。
您是否有可见的其他视图控制器可能会向所有方向返回YES?这可能会让人感到困惑。