Как получить прозрачную панель навигации в корневом контроллере вида с помощью UIappearance
В делегате моего приложения я указываю прозрачную панель инструментов с (как предложено в ответе на вопрос 18969248):-
Код является:
UINavigationBar *navigationBarAppearance = [UINavigationBar appearance];
navigationBarAppearance.backgroundColor = [UIColor clearColor];
[navigationBarAppearance setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
navigationBarAppearance.shadowImage = [[UIImage alloc] init];
navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
Это работает для всех контроллеров представления, помещенных в стек контроллера навигации, но не для корневого контроллера представления (который загружается из NIB). Как я могу получить прозрачность в панели навигации контроллера корневого представления?
1 ответ
Возможно, вам следует загрузить RootViewController программным способом через AppDelegate следующим образом, если вы используете раскадровку:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"yourStoryboard"
bundle: nil];
YourCustomRootViewController *customRootVC = (YourCustomRootViewController*) [mainStoryboard instantiateViewControllerWithIdentifier:@"firstAddProductViewController"];
// If you're not using storyboard, simply instantiate it this way
YourCustomRootViewController *customRootVC = [[YourCustomRootViewController alloc] initWithNibName:@"yourNib" bundle:nil];
/* In here, you want to add the code relative to the navigation bar of your rootVC */
[self.window setRootViewController:customRootVC];
}