Objective c iPad键盘出现在错误的方向
我有一个splitView应用程序,它有一个rootViewController和DetailsViewController 当应用程序加载detailsViewController时,会弹出一个包含UINavigationBar的模态viewController UINavigationBar上有一个搜索栏(通过编程设置)。当焦点移到搜索栏时,键盘弹出 但是,根据设备(模拟器)的方向,键盘会以错误的方向弹出。键盘始终显示为ipad处于“正常”方向(即主控键所在的一侧) 我在所有shouldAutoRotate方法中返回YES:Objective c iPad键盘出现在错误的方向,objective-c,cocoa-touch,xcode,ipad,Objective C,Cocoa Touch,Xcode,Ipad,我有一个splitView应用程序,它有一个rootViewController和DetailsViewController 当应用程序加载detailsViewController时,会弹出一个包含UINavigationBar的模态viewController UINavigationBar上有一个搜索栏(通过编程设置)。当焦点移到搜索栏时,键盘弹出 但是,根据设备(模拟器)的方向,键盘会以错误的方向弹出。键盘始终显示为ipad处于“正常”方向(即主控键所在的一侧) 我在所有shouldAu
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation;
为了尝试找出发生了什么,我在每个类中添加了一些调试代码,以记录每次触发shouldAutorotate事件时的interfaceOrientation
,同时显示触发模式viewdiload
方法的时间。我对每个方向都做了测试:调试输出如下所示
调试显示,无论实际设备方向如何,rootViewController和DetailsViewController接口方向始终是纵向的
唯一正确的日志(其中接口方向=设备方向)是在每次测试中触发modal shouldAutorotate事件的第一次和最后一次(第三次)
如果我在应用程序启动后旋转iPad,那么键盘将以正确的方向显示
有人能解释一下为什么会发生这种情况以及如何避免这种情况吗
[肖像]
主页按钮位置:底部键盘显示:底部 调试: 应用程序委托-添加SPLITVIEWCONTROLLER
细节界面肖像
根接口纵向图
根接口纵向图
细节界面肖像
模态界面肖像
模态未加载
模式旋转启动
模态旋转端
模态界面图 [景观] 主页按钮位置:左侧
键盘显示:左 调试: 应用程序委托-添加SPLITVIEWCONTROLLER
细节界面肖像
根接口纵向图
根接口纵向图
细节界面肖像
模态界面景观
模态未加载
模式旋转启动
模态旋转端
模态界面肖像
模态界面景观 [肖像] 主页按钮位置:顶部
键盘显示:顶部 调试: 应用程序委托-添加SPLITVIEWCONTROLLER
细节界面肖像
根接口纵向图
根接口纵向图
细节界面肖像
模态界面肖像
模态未加载
模式旋转启动
模态旋转端
模态界面肖像
模态界面图 [景观] 主页按钮位置:右
键盘显示:右 调试: 应用程序委托-添加SPLITVIEWCONTROLLER
细节界面肖像
根接口纵向图
根接口纵向图
细节界面肖像
模态界面景观
模态未加载
模式旋转启动
模态旋转端
模态界面肖像
模态界面景观
您是否已将支持的方向添加到plist中 见:
在显示模态视图控制器之前,需要让iOS处理旋转事件 下面是正在发生的事情:
[self presentModalViewController:newViewController animated:YES];
固定的:
dispatch_async(dispatch_get_main_queue(), ^{
[self presentModalViewController:newViewController animated:YES];
});
使用此新代码,您将获得以下序列: