2017-02-21 5 views
1

Не могли бы вы предложить мне, каков правильный способ настройки стиля строки состояния для MFMailComposeViewController в iOS> = 9.0? Я знаю, что [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; устарел, и я не могу его использовать. Я знаю, что возможное решение при добавлении категории, как это:UIStatusBarStyleLightContent для MFMailComposeViewController

#import "MFMailComposeViewController+StatusBarStyle.h" 
@implementation MFMailComposeViewController (StatusBarStyle) 
#pragma mark - Status bar management 
- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 
- (UIViewController *)childViewControllerForStatusBarStyle { 
    return nil; 
} 
@end 

Но в этом случае я должен включить View controller-based status bar appearance вариант и реализовать - (UIStatusBarStyle)preferredStatusBarStyle в всех ViewContollers, которые существуют в моем приложении (и у меня их много) , Итак, есть ли другое решение?

+0

Неправильно добавлять категорию, если вы хотите что-то переопределить, поэтому это не решение вообще – igrek

+0

см. Https://stackoverflow.com/a/ 5272612/907692 для получения более подробной информации – igrek

ответ

0

Хорошо, я создал свой собственный CommonNavigationViewController, добавил эти два метода:

- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

- (UIViewController *)childViewControllerForStatusBarStyle { 
    return nil; 
} 

И изменил класс Root Navigation Controller в раскадровке к этому. Это помогает, и теперь все VC, которые появляются в стеке навигационного контроллера, имеют строку состояния Light. Но в любом случае мне не нравится это решение :(

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