我有一个在xCode 5中创建的iOS通用项目,我试图移植到xCode 6.由于我没有使用LaunchScreen
而且iPhone 6和6 Plus扩展了适用于他们的决议。
设备更改其方向时会出现问题。
情景:
仅在iPhone 6和6 Plus上发生。
使用用户名和密码字段打开登录屏幕。将设备旋转到横向,然后点击用户名或密码字段。键盘出现在屏幕中间,半切。旋转回纵向完全隐藏了键盘,无论您点击哪个字段,它都不再出现在屏幕上。
要使键盘返回,请向后旋转至横向,点击字段旋转设备到相对的横向(不要让它以纵向进入)。键盘突然变得正常,行为正常。
答案 0 :(得分:5)
我遇到了同样的问题,因为您的应用是以缩放模式启动的。
在这种缩放模式下,Apple似乎没有全力以赴地处理景观问题。
解决方案是使用此处指定的技巧切换到iPhone 6-6Plus的非缩放模式:How to enable native resolution for apps on iPhone 6 and 6 Plus?
请注意,这可能会在此过程中打破很多屏幕..但是没有其他解决方案。
答案 1 :(得分:0)
我在应用程序的可扩展模式下遇到了这个问题。虽然支持非scalble模式(通过向xcassets添加iPhone 6& 6+发布图像)解决了这个问题,但在我的情况下不允许因为每个方向的屏幕都有静态布局。 我可以通过避免更改窗口的根视图控制器的事件来解决这个问题。相反,新的视图控制器已添加(平衡删除)作为子视图(因此是childViewController)到现有的根视图控制器。
答案 2 :(得分:0)
在iOS 6/7上一切正常,但不是iOS 8。
iOS 8上键盘的方向与状态栏不同。
答案 3 :(得分:0)
如果您的应用程序仅运行纵向模式,则可以停止生成方向通知;
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
答案 4 :(得分:0)
我遇到过这个问题,经过一些研究后发现了一些东西,导致了这样的错误。 在我的AppDelegate中,我更改了窗口rootViewController,以显示不同的ViewControllers取决于授权状态
if (!auth)
{
self.viewControllers = @[[[AuthViewController alloc] init]];
} else {
self.viewControllers = @[[[DataViewController alloc] init]];
}
我删除了这个并将控制器选择逻辑移动到NavigationViewController
npm install body-parser -s
并将此NavigationViewController设为Storyboard初始视图控制器。
希望它有所帮助!