Строка состояния iOS не будет оставаться светлой

В моем делегате приложения у меня есть следующий код, но он остается полностью темным над панелью навигации, где вы ничего не видите. Если я удалю фоновое изображение для панели навигации, оно правильно отобразится как светлое содержимое, но я не уверен, что будет блокировать его, когда оно присутствует. Фоновое изображение для UINavigationBar имеет размер 320x44.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UIImage *theBackground = [[UIImage imageNamed:@"navbar.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];;
    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
        // Load resources for iOS 6.1 or earlier
       // UIColor *purple = UIColorFromRGB(0x95cdde);
        [[UINavigationBar appearance] setBackgroundImage:theBackground forBarMetrics:UIBarMetricsDefault];



    } else {
        // Load resources for iOS 7 or later
       // UIColor *purple = UIColorFromRGB(0x95cdde);

        [[UINavigationBar appearance] setBackgroundImage:theBackground forBarMetrics:UIBarMetricsDefault];

    }
    window.rootViewController = tabBarController;
    [window makeKeyAndVisible];
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    return YES;
}

Вот изображение панели навигации введите здесь описание изображения


person user717452    schedule 20.03.2014    source источник


Ответы (2)


Итак, это мое понимание. Надеюсь, кто-нибудь поправит меня, если я ошибаюсь. В iOS 7 фоновое изображение панели навигации также располагается под строкой состояния. Таким образом, вполне вероятно, что фоновое изображение панели навигации блокирует строку состояния.

У меня была такая же проблема, вроде как, в моем приложении. У меня было средство выбора изображений, и при нажатии на этот контроллер содержимое строки состояния становилось темным. Следующий код решил проблему для меня

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent
                                            animated:NO];
}

Мне также пришлось установить UIViewController как UINavigationControllerDelegate.

person Zia    schedule 20.03.2014
comment
Ничего не изменил для меня. - person user717452; 21.03.2014
comment
Какого цвета в основном фоновое изображение? - person Zia; 21.03.2014
comment
Немного темно... добавление фонового изображения к исходному сообщению. - person user717452; 21.03.2014
comment
Самое большое отличие, которое я заметил в этом приложении от других, заключается в том, что раньше UIViews в NavigationController имели кадр 0,64,320,508. Это представление имеет 0,0,320,568, что означает, что представление охватывает все. Однако он неактивен и не позволяет мне его изменить. - person user717452; 21.03.2014

Нашел эту статью http://blog.jaredsinclair.com/post/61507315630/wrestling-with-status-bars-and-navigation-bars-on-ios-7, который помог мне разобраться в моей проблеме. Нужно добавить это в мой список

Внешний вид строки состояния на основе ViewController и установите для него значение НЕТ

person user717452    schedule 21.03.2014