2012-04-12 2 views
0

У меня есть приложение с главной страницей - скрытая панель навигации, а когда я возвращаюсь с дочерней страницы с навигационной панелью на эту главную страницу, потому что я настроил навигацию скрытой в методе главной страницы: - (void) viewWillAppear, я обнаружил, что черный ящик появится с анимацией, как этого избежать? Большое спасибо!!!Как избежать появления черного ящика при скрытии навигационной панели?

ответ

8

Ok, я нахожу ответ:

self.navigationController.view.backgroundColor = [UIColor redColor]; 
+0

работал для меня :) – Garfbargle

+0

Спасибо за этой черной магии. – felixwcf

4

Это устраняет проблему без взлома цвета, что может привести к контроллерам навигации являются неправильным цветом.

Просто установите его анимировать в viewWillAppear :)

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 
    [self.navigationController setNavigationBarHidden:YES animated:YES]; 
} 

и если вернуться к странице с множеством контроллер нав анимации для NO

- (IBAction)backButtonClicked:(id)sender { 
    [self.navigationController setNavigationBarHidden:NO animated:NO]; 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 
+0

анимированные: ДА. Кто бы мог подумать? –

+2

меня, по-видимому: -p –

0

Для Swift3.0

In First ViewController

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 
    self.navigationController?.setNavigationBarHidden(true, animated: true) 
    } 

В Second ViewController

func backButtonPressed() { 
     self.navigationController?.setNavigationBarHidden(false, animated: false) 
     self.navigationController?.popViewController(animated: true) 
    }