iOS18.0 iPad适配问题-tabbar
问题
系统的tabbar样式变更造成底部自定义的tabbar无法正常显示
解决方案
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 180000 if (@available(iOS 18.0, *)) { if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { self.mode = UITabBarControllerModeTabBar; self.traitOverrides.horizontalSizeClass = UIUserInterfaceSizeClassUnspecified; NSString *tabContainerClassName = [NSString stringWithFormat:@\"%@%@%@\", @\"_UITab\", @\"Container\", @\"View\"]; for (UIView *subview in self.view.subviews) { if ([NSStringFromClass(subview.class) isEqualToString:tabContainerClassName]) { [subview setHidden:YES]; } } } } #endif
判定iPad及18.0以上系统,重新对UITabbarController的子类进行模式重置和底部方向设定,去除二级controller存在_uitab等子类.