У меня есть UINavigationController
с 3 viewControllers. Мы знаем, что три viewControllers имеют общую навигационную панель. Если я хочу установить navigationBar
полностью прозрачным. Я могу поставить код в viewWillAppear
:Показать прозрачный UINavigationbar будет видеть черную полосу при прокрутке viewController
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setBarTintColor:[UIColor clearColor]];
self.navigationBar.translucent = YES;
и установить его обратно в viewWillDisappear
:
[self setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self setShadowImage:nil];
[self setBarTintColor:THEME_COLOR];
self.translucent = NO;
Я хочу, чтобы установить UINavigationBar
полупрозрачным только в viewControllerB, поэтому я положил код в viewControllerB. Однако, когда я popToViewController B, я вижу черную полосу в правом верхнем углу экрана. Поскольку используется viewWillAppear
. Кажется, это не может быть решено в моем случае.
Выхожу с некоторыми методами:
- использовать разные
UINavigationBar
. - использование другой
UINavigationController
. НоUINavigationController
не может нажать на новыйUINavigationController
- Таможня
UIView
какUINavigationBar
.
Я думаю, что выше Митос сложнее.
Всех идей спасибо!
Поместите свой код 'ViewControllerB' и' ViewControllerC' –
Я не понимаю, о чем вы говорите: «Так как' viewWillAppear' вызывается, похоже, в моем случае не может быть разрешено ».? Можете ли вы повторить это по-другому? И можете ли вы добавить изображение черной полосы в правом верхнем углу экрана? Кажется странным, что вы не увидите планку по всей верхней части экрана. – Palpatim