Настройка свойств пользовательского интерфейса для UINavigationBar не работает для iOS 13 при переходе между контроллерами представления
Проблема характерна для iOS13. Я использую два контроллера представления, которым назначен первый VC(контроллер представления) в качестве rootViewController. Для первого VC свойства панели навигации устанавливаются как таковые:
- (void) viewWillAppear:(BOOL)animated{
self.view.backgroundColor = [UIColor whiteColor];
self.navigationItem.title = @"VC1";
self.navigationController.navigationBar.barTintColor = [UIColor greenColor];
self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:220.0/255.0 green:104.0/255.0 blue:1.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
[UIFont fontWithName:@"AmericanTypewriter" size:20.0], NSFontAttributeName,
nil];
UIButton *nxtFormBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 100, 100, 50)];
[nxtFormBtn setTitle:@"go to VC2" forState:UIControlStateNormal];
[nxtFormBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[nxtFormBtn setBackgroundColor:[UIColor grayColor]];
[nxtFormBtn addTarget:self action:@selector(travelToNextForm) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:nxtFormBtn];
}
-(void)travelToNextForm{
self.vc = [[ViewController2 alloc]init];
[self.navigationController pushViewController:self.vc animated:YES];
}
В VC2(view controller2) я использую UINavigationBarAppearance для установки свойств navigationBar как таковых:
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = @"VC2";
UINavigationBarAppearance *navAppr = [[UINavigationBarAppearance alloc]init];
[navAppr setBackgroundColor:[UIColor blueColor]];
[navAppr setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:220.0/255.0 green:0/255.0 blue:1.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
[UIFont fontWithName:@"AmericanTypewriter" size:20.0], NSFontAttributeName,
nil]];
self.navigationItem.standardAppearance = navAppr;
self.navigationItem.scrollEdgeAppearance = navAppr;
self.navigationItem.compactAppearance = navAppr;
}
Проблема в том, что когда я нажимаю кнопку "Назад" на панели навигации, чтобы вернуться к VC1, свойства панели навигации отключены, и кажется, что применяется внешний вид по умолчанию. Я хочу, чтобы тот же внешний вид был применен к панели навигации VC1 перед переходом в VC2. Прикрепляю скриншоты для справки: