Как изменить цвет текста UIStatusBar во время пользовательского перехода в блоке анимации?

Клиент нажимает на название логотипа ("а"):

Существующее представление отталкивается новым представлением:

Затем, чтобы отменить это, клиент просто снова нажимает на логотип заголовка.

Проблема, с которой я сталкиваюсь, заключается в том, что мой текст в строке состояния остается черным, когда панель навигации и представление перемещаются вниз новым представлением.

Я попробовал несколько вещей во время анимации, и ничего не работает.

[container addSubview:move];

[UIView animateWithDuration:1 delay:0
     usingSpringWithDamping:1 initialSpringVelocity:30
                    options:0 animations:^{

                       [move setFrame: [toVC isBeingPresented] ?  endFrame : toBeginFrame];
                       [[[self navigationController] view] setFrame:CGRectMake(0, 350, 320, 640)];
                        self.navigationController.navigationBar.barStyle = UIBarStyleBlack;            // [self preferredStatusBarStyle];
                        [self setNeedsStatusBarAppearanceUpdate];


                    }

                        completion:^(BOOL finished) {

                     [transitionContext completeTransition: YES];
                 }];

Не уверен, как с этим бороться. Черный текст не очень хорошо сочетается с серым фоном, поэтому мне нужно, чтобы текст стал белым, когда навигационная панель и вид сдвинуты вниз.

Был бы признателен за решение спасибо.

С уважением

1 ответ

Решение

В вашем контроллере вида "to", который с черным фоном, вы должны реализовать preferredStatusBarStyle

Это должно выглядеть так:

- (UIStatusBarStyle) preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

Это должно быть все, что вам нужно сделать. Когда контроллер представления представлен, этот метод будет вызываться автоматически и использоваться для перехода в новый стиль.

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