美文网首页
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