### 运行环境 ### - [x] iOS 设备:`iPhone` / `iPad` / `模拟器` - [x] 系统版本:`iOS 10.x` - [x] Xcode 版本:`8.x` - [x] QMUI iOS 版本:`1.x.x` ### 具体问题描述 ### 当tab的item大于5,并且tab的selectedIndex大于等于5的时候,系统把子项强行放到了moreNavigationController,导致获取selectedViewController的navVC里面的viewControllers为0 - (UIViewController *)qmui_visibleViewControllerIfExist { if (self.presentedViewController) { return [self.presentedViewController qmui_visibleViewControllerIfExist]; } if ([self isKindOfClass:[UINavigationController class]]) { return [((UINavigationController *)self).visibleViewController qmui_visibleViewControllerIfExist]; } if ([self isKindOfClass:[UITabBarController class]]) { UITabBarController *tab = (UITabBarController *)self; if (tab.selectedIndex >= 4 && tab.customizableViewControllers.count > 5) { // 当tab的item大于5,并且tab的selectedIndex大于等于5的时候,系统把子项强行放到了moreNavigationController,导致获取selectedViewController的navVC里面的viewControllers为0 return [tab.moreNavigationController qmui_visibleViewControllerIfExist]; }else{ return [((UITabBarController *)self).selectedViewController qmui_visibleViewControllerIfExist]; } } if ([self qmui_isViewLoadedAndVisible]) { return self; } else { QMUILog(@"UIViewController (QMUI)", @"qmui_visibleViewControllerIfExist:,找不到可见的viewController。self = %@, self.view = %@, self.view.window = %@", self, [self isViewLoaded] ? self.view : nil, [self isViewLoaded] ? self.view.window : nil); return nil; } } #### 问题截图 #### 
Activity