您的位置:首页 > 移动开发 > IOS开发

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://blog.csdn.net/zaiwei123456/article/details/78796990
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iOS IQKeyboardManager OC