Настройка свойств пользовательского интерфейса для 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. Прикрепляю скриншоты для справки:

VC1_first run

VC2_UINavigationBarAppearance_used

VC1_from_VC2_properties_reset_to_deafault

0 ответов

Другие вопросы по тегам