iqkeyboardmanager作用是在做输入操作的时候会自动向上偏移页面使得输入框不会被键盘挡住,作用十分显著.但是在普通的View页面上添加输入框的时候,会导致页面顶部的navigation也会跟随偏移.如果输入框所在的视图是scrollView或者是scrollView的子视图的时候,就不会出问题.
打开这个第三方的文件,更改IQUIView+Hierarchy.m文件的topMostController如下:
-(UIViewController *)topMostController
{
NSMutableArray<UIViewController*> *controllersHierarchy = [[NSMutableArray alloc] init];
UIViewController *topController = self.window.rootViewController;
if (topController)
{
[controllersHierarchy addObject:topController];
}
while ([topController presentedViewController]) {
topController = [topController presentedViewController];
[controllersHierarchy addObject:topController];
}
UIViewController *matchController = [self viewController];
// while (matchController != nil && [controllersHierarchy containsObject:matchController] == NO)
// {
// do
// {
// matchController = (UIViewController*)[matchController nextResponder];
//
// } while (matchController != nil && [matchController isKindOfClass:[UIViewController class]] == NO);
// }
return (UIViewController*)matchController;
}