Ahs*_*him 5 iphone objective-c orientation ios ios8
我有一个在视图控制器中使用纵向模式的应用程序,除了一个页面,该页面只需要横向(横向左侧或横向右侧)。我怎样才能做到这一点?我尝试了多种解决方案,说设置导航栏的方向模式,应用程序会转动,但不幸的是,这对我不起作用。我还尝试手动旋转视图,它起作用了,但是当我单击文本字段在其中写入内容时,键盘显示为纵向模式而不是横向模式。
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeRight];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
Run Code Online (Sandbox Code Playgroud)
上面的代码对我有用,但只有当我允许应用程序在横向和纵向都旋转时,但这不是我想要的,因为这样所有页面都可以从纵向变成横向。
编辑:
我的情况是我被分配了一个已经完成的项目。制作这个应用程序的人一直在使用 STNavigation Manager(我不确定那是什么)而不是 self.navigationController 推送和弹出的东西。所以 shouldAutoRotate 和这些委托在我的应用程序中不起作用。其次,他还禁用了导航栏并创建了自己的导航栏。
如果您在应用程序中启用所需的横向模式,则可以使用您正在使用的代码强制应用程序进入所需的横向模式,然后在返回到您想要纵向的屏幕之前强制其返回纵向模式。
我发现最好的方法是创建 UINavigationController 的子类,该子类不允许通过
-(BOOL)shouldAutoRotate
Run Code Online (Sandbox Code Playgroud)
然后,在一个视图中,我希望景观在 VC 级别上实现相同的方法返回 true。
| 归档时间: |
|
| 查看次数: |
1863 次 |
| 最近记录: |