Как получить прозрачную панель навигации в корневом контроллере вида с помощью 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];

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