我有一个splitview应用程序,它有rootviewcontroller和detailsviewcontroller
当应用程序加载detailsViewController时,会弹出一个包含uinavigationbar的模式视图控制器。
uinavigationbar上有一个搜索栏(按程序设置)。当焦点移到搜索栏时,键盘弹出。
但是,根据设备(模拟器)的方向,键盘会以错误的方向弹出。键盘始终显示为iPad处于“正常”方向(即主按键所在的一侧)。
我回来了
对
在所有的shouldautorotate方法中:
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation;
为了尝试找出发生了什么,我在每个类中添加了一些调试代码来记录
interfaceOrientation
每次激发ShouldAutoRotate事件时,同时显示模式
viewDidLoad
方法烧成。我为每个方向做了一个测试:调试输出如下所示。
调试表明,无论实际设备方向如何,rootviewcontroller和detailsviewcontroller接口方向始终是纵向的。
.
唯一正确的日志(其中接口方向=设备方向)是在每个测试中第一次和最后一次(第三次)触发模态应向上触发事件。
如果我在应用程序启动后旋转iPad,键盘就会出现在正确的方向上。
有人能解释一下为什么会发生这种情况以及如何避免这种情况吗?
[肖像]
主按钮位置:底部
键盘显示:底部
调试:
应用程序委托-添加SplitViewController
细节界面纵向
根接口纵向
根接口纵向
细节界面纵向
模态界面图
模态载荷
模式旋转启动
模态旋转端
模态界面图
[风景]
主按钮位置:左
键盘显示:左
调试:
应用程序委托-添加SplitViewController
细节界面纵向
根接口纵向
根接口纵向
细节界面纵向
模态界面景观
模态载荷
模式旋转启动
模态旋转端
模态界面图
模态界面景观
[肖像]
主按钮位置:顶部
键盘显示:顶部
调试:
应用程序委托-添加SplitViewController
细节界面纵向
根接口纵向
根接口纵向
细节界面纵向
模态界面图
模态载荷
模式旋转启动
模态旋转端
模态界面图
模态界面图
[风景]
主按钮位置:右
键盘显示:右
调试:
应用程序委托-添加SplitViewController
细节界面纵向
根接口纵向
根接口纵向
细节界面纵向
模态界面景观
模态载荷
模式旋转启动
模态旋转端
模态界面图
模态界面景观