2014-08-06 4 views
0

Я знаю, что могу изменить цвет текста строки состояния iPhone, используя описанные методы here.Динамическое изменение цвета строки состояния

Однако у моего приложения разные темы, и мне нужно обновить строку состояния соответственно.

Вызов

[self setNeedsStatusBarAppearanceUpdate]; 

и

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

явно не будет работать. Однако он должен быть локальным, как и только для определенного вида TabBar.

+0

Каким образом это не сработает? Вы можете совершать эти звонки, когда меняется тема ... – Wain

+0

@Wain Конечно, я могу. Извините, слишком поздно здесь. Не подумал прямо ... – user3607973

ответ

1

Сначала выберите Project, а на вкладке Genernal вы увидите что-то вроде этого.

enter image description here

Затем установите Status Bar Style в Light так же, как на картинке.

Во-вторых, установите View controller-based status bar appearance equal в NO в Info.plist. Если вы не можете найти его, просто добавьте новую строку и установите ее, как указано выше.

И затем запустите свое приложение, вы увидите, что цвет текста строки состояния белый. :)

+0

Извините за ссылку на изображение, потому что моей репутации недостаточно, чтобы отправить изображение напрямую. – ikarishinjigao

0

Только для тех, кто приезжает сюда за титул. Вы можете установить флаг и переключения между статусная строка цвета текста, как в сегменте кода Дано:

-(UIStatusBarStyle)preferredStatusBarStyle { 

if (barStyleLight){ 

    return UIStatusBarStyleLightContent; 
} 
else { 

    return UIStatusBarStyleDefault; 
} 

}

отметить также, что этот preferredStatusBarStyle метод вызывается всякий раз, когда мы называем: [self setNeedsStatusBarAppearanceUpdate];

Надеюсь, что это поможет.

Смежные вопросы