我有一个应用程序,我想在某些视图中支持设备旋转,但其他在横向模式下没有特别有意义,所以当我交换视图时,我想强制旋转设置为纵向.
在UIDevice上有一个未记录的属性设置器可以完成这个技巧,但显然会产生编译器警告,并且可能会随着SDK的未来版本而消失.
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
Run Code Online (Sandbox Code Playgroud)
是否有任何记录的方法来强制定位?
更新:我想我会提供一个例子,因为我没有找到shouldAutorotateToInterfaceOrientation,因为我已经实现了它.
我希望我的应用程序支持View 1中的横向和纵向,但只支持View 2中的纵向.我已经为所有视图实现了shouldAutorotateToInterfaceOrientation但是如果用户在View 1中处于横向模式然后切换到View 2,我想强制执行手机旋转回肖像.
我想要获得一个iPhone应用程序,它只需要导航控制器堆栈中的每一次推送或弹出来改变方向.
基本上第一个视图是肖像,第二个视图是第三个肖像(是的我知道这不太理想,但那是设计,我必须实现它).
我已经在这里
做了各种建议.... 如何在没有设备自动旋转的情况下检测iPhone上的旋转?
将新视图推送到UINavigationViewController时强制纵向方向
是否有记录的方法来设置iPhone方向?
但没有取得全部成功.
设置链接3.1.2我阅读上面链接的文章似乎表明,如果我的肖像视图推送视图
,键盘将在需要时以正确的方向显示.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight) );
}
这种方法的问题在于,如果没有状态栏,状态栏转换会很奇怪和丑陋 - 每次更改都会在页面上隐藏阴影.
所以.我错过了什么
1)我认为在3.1.2(或可能更早)中,应该只是通过推动控制器来提供所需的方向,我是错误的吗?
2)是否有另一种方法可以使键盘以正确的方向显示.
3)未记录的API是否可以调用(请不要!)