StatusBarStyle для полноэкранного UIViewController

В настоящее время у меня есть приложение, которое устанавливает стиль строки состояния для легкого содержимого.

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

Это работает, как и ожидалось, за исключением полноэкранного модального окна. Вот код для создания модального UIViewController:

@implementation PostCard
- (id)initWithToRecipients:(NSArray *)toRecipients subject:(NSString *)subject message:(NSString *)message isHTML:(BOOL)isHTML
{
    if ([MFMailComposeViewController canSendMail] && (self = [super init]))
    {
        self.viewController = [MFMailComposeViewController new];
        self.viewController.mailComposeDelegate = self;

        [_viewController setToRecipients:toRecipients];
        [_viewController setSubject:subject];
        [_viewController setMessageBody:message isHTML:isHTML];

        self.viewController.modalPresentationStyle = UIModalPresentationFullScreen;
        self.viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    } else {
        NSLog(@"Cannont send mail from current device.");
    }

    return self;
}
...
@end

Затем контроллер представления открытки представляется как

[myOtherViewController presentViewController:myPostCard.viewController animated:YES completion:nil];

В полноэкранном режиме statusBarStyle возвращается к темному содержимому. Если я изменю modalPresentationStyle на UIModalPresentationFormSheet, световой контент сохранится.

Есть ли способ программно установить «statusBarStyle» модального окна? Или скажите ему наследоваться от существующего UIViewController? Или это ошибка? (Обратите внимание, я также безуспешно пытался установить свойства своего проекта.)

Заранее спасибо!


person Tim Newton    schedule 02.03.2014    source источник