Если я скомпилирую свой проект с Xcode 10.1, UITabBarController вызовет ошибку, когда выскочит из контроллера представления? - PullRequest
0 голосов
/ 07 декабря 2018

Я использую 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];
}

Ошибкаинтерфейс при возврате назад:

enter image description here

...