Проблема указана c для iOS13. Я использую два контроллера представления, назначил первый V C (контроллер представления) как rootViewController. Для первого V C свойства панели навигации установлены следующим образом:
- (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. Прикрепление снимков экрана для справки:
Первый запуск VC1
VC2_UINavigationBarAppearance_used
VC1_from_VC2_properties_reset_to_deaf *