IQKeyboardManager 在iOS11系統(tǒng)下使得導(dǎo)航欄的背景顏色無法滲透電池欄而出現(xiàn)分節(jié)。且導(dǎo)致表格內(nèi)容區(qū)上移等問題。如下圖:

問題原因:IQKeyboardManager 在獲取當(dāng)前頂層控制器的時候獲取到了tabBarController 。
解決方案:找到IQKeyboardManager框架中IQUIView+Hierarchy.m文件修改-(UIViewController*)topMostController 方法中的代碼。實現(xiàn)如下:
-(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;
? ? }
}