iOS开发技巧之:关于IQKeyboardManager 在iOS11导航栏消失的问题
2018-03-30 19:18
585 查看
关于IQKeyboardManager 在iOS11导航栏消失的问题
问题: 升级到iOS11之后点击键盘时导航栏消失 如下图:
使用版本:pod 'IQKeyboardManager', '~> 5.0.6'
问题原因:IQKeyboardManager 在获取当前顶层控制器的时候获取到了tabBarController
解决办法:
找到IQUIView_Hierarchy.m 修改-(UIViewController *)topMostController方法 如下:即可
[objc] view plain copy-(UIViewController *)topMostController{
UIViewController *rootController = [UIApplication sharedApplication].keyWindow.rootViewController;
if([rootController isKindOfClass:[UITabBarController class]]){
UITabBarController *tabBarController = (UITabBarController *)rootController;
UINavigationController *selectController = tabBarController.selectedViewController;
UIViewController *viewController = (UIViewController *)selectController.visibleViewController;
while (viewController.presentedViewController) {
viewController = (UIViewController *)viewController.presentedViewController;
}
return viewController;
}else if ([rootController isKindOfClass:[UINavigationController class]]) {
UINavigationController *selectController = (UINavigationController *)rootController;
return selectController.visibleViewController;
}else if ([rootController isKindOfClass:[UIViewController class]]) {
return rootController;
}
else{
return nil;
}
}
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/30/06c8af8ca006a98ab732db1d1742f36d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201803/30/69acb1092e7baae9d3b6c292ced0c3ee)
转载自: https://blog.csdn.net/zaiwei123456/article/details/78796990
问题: 升级到iOS11之后点击键盘时导航栏消失 如下图:
使用版本:pod 'IQKeyboardManager', '~> 5.0.6'
问题原因:IQKeyboardManager 在获取当前顶层控制器的时候获取到了tabBarController
解决办法:
找到IQUIView_Hierarchy.m 修改-(UIViewController *)topMostController方法 如下:即可
[objc] view plain copy-(UIViewController *)topMostController{
UIViewController *rootController = [UIApplication sharedApplication].keyWindow.rootViewController;
if([rootController isKindOfClass:[UITabBarController class]]){
UITabBarController *tabBarController = (UITabBarController *)rootController;
UINavigationController *selectController = tabBarController.selectedViewController;
UIViewController *viewController = (UIViewController *)selectController.visibleViewController;
while (viewController.presentedViewController) {
viewController = (UIViewController *)viewController.presentedViewController;
}
return viewController;
}else if ([rootController isKindOfClass:[UINavigationController class]]) {
UINavigationController *selectController = (UINavigationController *)rootController;
return selectController.visibleViewController;
}else if ([rootController isKindOfClass:[UIViewController class]]) {
return rootController;
}
else{
return nil;
}
}
转载自: https://blog.csdn.net/zaiwei123456/article/details/78796990
相关文章推荐
- 关于IQKeyboardManager 在iOS11导航栏消失的问题
- iOS开发 ☞ 关于带系统导航栏坐标的问题
- 关于iOS开发中隐藏导航栏的问题
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- 关于多次颁发ios开发证书后,真机调试的错误问题解决
- 关于 IOS 开发中遇到的 读取 cell xib 文件时导致死机的问题。
- IOS开发:关于UILabel阴影设置的问题
- <iOS开发兼容问题>关于IOS6和IOS5旋屏问题
- IOS开发的一些技巧和常见问题
- IOS开发:关于设置UIView的背景为图片的方法以及问题
- 【iOS开发】---- 关于协议delegate在dealloc中置为nil的问题
- IOS开发---菜鸟学习之路--(二十四)-iOS7View被导航栏遮挡问题的解决
- iOS开发笔记--关于设置UIView的背景为图片的方法以及问题
- 关于IOS开发证书问题
- IOS开发(21)关于UITextField的键盘遮挡问题
- 【iOS-Cocos2d游戏开发】关于CCSpriteSheet报错问题
- IOS开发:关于UIPickerView类的代理方法titleForRow和viewForRow的使用问题
- IOS开发:一个关于UIPopoverController设置contentsize大小的问题
- iOS开发 关于照片截取内容旋转的问题
- [iOS开发兼容问题之]关于同步IOS6和IOS5旋屏问题