Я использую UITabBarController в качестве моего корневого контроллера представления и добавляю к нему два контроллера навигации.В моем случае я нажимаю на контроллер представления и скрываю панель вкладок, когда я возвращаюсь назад, элементы панели вкладок отображаются ненормально.
Эта ошибка возникает, когда я использую Xcode 10.1 для создания этого проекта.Если я перехожу на Xcode 9.x, ошибка исчезла, все правильно.
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIViewController *vc = [self mainTabBarController];
[self.window setBackgroundColor:[UIColor whiteColor]];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
return YES;
}
- (UITabBarController *)mainTabBarController {
UIImage *tabImage = nil;
UIImage *tabHighlightImage = nil;
TAFisrtViewController *vc1 = [[TAFisrtViewController alloc] init];
vc1.title = @"First";
tabImage = [[UIImage imageNamed:@"tabbar_explore"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
tabHighlightImage = [[UIImage imageNamed:@"tabbar_explore"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
vc1.tabBarItem = [[UITabBarItem alloc] initWithTitle:vc1.title image:tabImage selectedImage:tabHighlightImage];
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:vc1];
TASecondViewController *vc2 = [[TASecondViewController alloc] init];
vc2.title = @"First";
tabImage = [[UIImage imageNamed:@"tabbar_explore"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
tabHighlightImage = [[UIImage imageNamed:@"tabbar_explore"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
vc2.tabBarItem = [[UITabBarItem alloc] initWithTitle:vc2.title image:tabImage selectedImage:tabHighlightImage];
UINavigationController *navigationController2 = [[UINavigationController alloc] initWithRootViewController:vc2];
UITabBarController *mainTabBarController = [[UITabBarController alloc] init];
[mainTabBarController setViewControllers:@[navigationController1, navigationController2]];
return mainTabBarController;
}
TAFisrtViewController.m:
- (void)viewDidLoad {
[super viewDidLoad];
[self setupUI];
}
- (void)setupUI {
self.view.backgroundColor = [UIColor yellowColor];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(next:)];
self.navigationItem.rightBarButtonItem = barButtonItem;
}
- (void)next:(UIBarButtonItem *)barButtonItem {
TASecondViewController *vc = [[TASecondViewController alloc] init];
vc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:vc animated:YES];
}
Ошибкаинтерфейс при возврате назад: