iOS App:窗口旋转总是纵向而不是横向
Posted
技术标签:
【中文标题】iOS App:窗口旋转总是纵向而不是横向【英文标题】:iOS App: Window rotation always Portrait instead of Landscape 【发布时间】:2013-06-26 03:04:50 【问题描述】:我的应用程序仅适用于横向。 因此,我将初始方向和支持方向设置为 LandScape Home Right。
但是,初始启动方向始终变为纵向。 导航到下一页并返回后,方向正确。
这可能与以下问题类似,In ios 6 on iPad, initial rotation is always portrait, after that it always rotates correctly
但是那里的解决方案不起作用,因为“handleRotationFor”会发出警告: instanceMethod -handleRotationFor 未找到(返回类型默认为 'id')
我应该如何解决这个错误?
请帮忙
【问题讨论】:
【参考方案1】:项目目标 --> 点击“摘要”选项卡并在“支持的接口方向”中选择您的方向
【讨论】:
我已将 Universal、iPad、iPhone 的 Supported Orientation 设置为 Landscape Right Home,但还是这样【参考方案2】:在 Xcode 的文件窗格中单击您的项目,然后从右侧窗格中选择目标。然后在摘要选项卡中查看支持的方向。只选择横向。你也可以实现
-(NSUInteger)supportedInterfaceOrientation
return UIInterfaceOrientationMaskLandscapeRight;
在您的应用委托中
【讨论】:
还是不行,拉胡尔。我通过在上面添加包含到目前为止的代码详细信息的 pastebin url 来更新我的问题。【参考方案3】:在 Xcode 中的摘要选项卡下,确保没有按下纵向和倒置。同时添加这三个函数。
// *********************
// ios6 orientation support
// *********************
- (BOOL)shouldAutorotate
UIInterfaceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];
if (interfaceOrientation == UIInterfaceOrientationPortrait)
return NO;
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
return NO;
else
return YES;
-(NSUInteger)supportedInterfaceOrientations
return UIInterfaceOrientationMaskLandscape;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
return NO;
else
return YES;
【讨论】:
嗨,Sam,这仍然无法正常工作。以防万一,我应该为 rootViewController 设置什么 shouldAutorotateToInterfaceOrientation?【参考方案4】:在应用的 info.plist 中检查支持的方向。检查并在 nib 文件中设置方向。
您可以使用[[UIDevice currentDevice] orientation]
检查方向
【讨论】:
以上是关于iOS App:窗口旋转总是纵向而不是横向的主要内容,如果未能解决你的问题,请参考以下文章
禁止 UITableViewcontroller 横向旋转(保持纵向)