Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在动画块中的自定义转换期间更改UIStatusBar文本的颜色?_Ios_Objective C_Cocoa Touch_Uinavigationcontroller_Uistatusbar - Fatal编程技术网

Ios 如何在动画块中的自定义转换期间更改UIStatusBar文本的颜色?

Ios 如何在动画块中的自定义转换期间更改UIStatusBar文本的颜色?,ios,objective-c,cocoa-touch,uinavigationcontroller,uistatusbar,Ios,Objective C,Cocoa Touch,Uinavigationcontroller,Uistatusbar,客户点击标题标识(“a”): 现有视图被新视图向下推: 然后,要撤消此操作,客户只需再次点击标题徽标 我遇到的问题是,当导航栏和视图被新视图按下时,我的状态栏文本仍为黑色 我在动画中尝试了一些东西,但没有任何效果 [container addSubview:move]; [UIView animateWithDuration:1 delay:0 usingSpringWithDamping:1 initialSpringVelocity:30

客户点击标题标识(“a”):

现有视图被新视图向下推:

然后,要撤消此操作,客户只需再次点击标题徽标

我遇到的问题是,当导航栏和视图被新视图按下时,我的状态栏文本仍为黑色

我在动画中尝试了一些东西,但没有任何效果

[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];
                 }];
不知道该怎么处理。黑色文本无法与灰色背景很好地融合,因此我需要在按下导航栏和视图时将文本变为白色

非常感谢您的解决方案

亲切问候

在“to”视图控制器中,即黑色背景的控制器中,您需要实现
preferredStatusBarStyle

应该是这样的:

- (UIStatusBarStyle) preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

这应该是你需要做的全部。显示视图控制器时,将自动调用该方法并使用该方法转换为新样式。

您还需要在显示的视图控制器上将
modalPresentationCapturesStatusBarAppearance
设置为
YES
。在初始化时执行此操作。