美文网首页
IQKeyboardManager iOS 11 引起状态栏变为

IQKeyboardManager iOS 11 引起状态栏变为

作者: KnightQ丶 | 来源:发表于2018-06-04 15:09 被阅读21次

    问题描述

    当输入结束的时候,状态栏变为白色,与自己定义的导航栏颜色形成鲜明的对比.

    收起下方评论的时候,状态栏变色

    解决方案

    找到IQKeyboardManager框架中IQUIView+Hierarchy.m文件修改

    -(UIViewController*)topMostController
    

    方法中的代码。
    实现如下:

    -(UIViewController *)topMostController
    {
        UIViewController *rootController = [UIApplication sharedApplication].keyWindow.rootViewController;
        
        if([rootController isKindOfClass:[UITabBarController class]]){
            
            UITabBarController *tabBarController = (UITabBarController*)rootController;
            
            UINavigationController*navController = tabBarController.selectedViewController;
            
            UIViewController*viewController = (UIViewController*)navController.visibleViewController;
            
           while(viewController.presentedViewController) {
                
                viewController = (UIViewController*)viewController.presentedViewController;
                
                }
            
            return viewController;
            
        }else if([rootController isKindOfClass:[UINavigationController class]]) {
            
           UINavigationController *navController = (UINavigationController*)rootController;
            
            return navController.visibleViewController;
            
        }else if([rootController isKindOfClass:[UIViewController class]]) {
                
            return rootController;
                
        }else{
                
            return nil;
                        
        }
    }
    

    实现效果:


    修改完成后,不会发生变化

    相关文章

      网友评论

          本文标题:IQKeyboardManager iOS 11 引起状态栏变为

          本文链接:https://www.haomeiwen.com/subject/txqysftx.html