在执行某些网络操作时,我会呈现一个模态视图控制器(类似于MBProgressHUD但作为视图控制器),以防止用户交互并指示进度。
视图控制器具有modalPresentationStyle = .Custom,并使用过渡委托和自定义表示控制器进行动画处理。除了动画转换之外,它们没有任何自定义操作驱动演示。
我的问题是每当呈现视图控制器时,它就会将状态栏颜色变为黑色。 我可以覆盖preferredStatusBarStyle使其始终返回.LightContent,但有时这个视图控制器是在带有.Default的视图控制器上呈现的,我也不想在那里更改它。 基本上,我想要与UIAlertController相同的行为。
这些设置确实将呈现的控制器顶部移出了状态栏,但状态栏仍然受到影响。我是否遗漏了某个属性,可以阻止我的视图控制器更新状态栏样式?
视图控制器具有modalPresentationStyle = .Custom,并使用过渡委托和自定义表示控制器进行动画处理。除了动画转换之外,它们没有任何自定义操作驱动演示。
我的问题是每当呈现视图控制器时,它就会将状态栏颜色变为黑色。 我可以覆盖preferredStatusBarStyle使其始终返回.LightContent,但有时这个视图控制器是在带有.Default的视图控制器上呈现的,我也不想在那里更改它。 基本上,我想要与UIAlertController相同的行为。
我尝试配置演示控制器,将呈现的视图控制器移出状态栏空间:
private class SEUIProgressControllerPresentationController: UIPresentationController {
override func shouldPresentInFullscreen() -> Bool {
return false
}
private override func frameOfPresentedViewInContainerView() -> CGRect {
return super.frameOfPresentedViewInContainerView().insetBy(dx: 40, dy: 100)
}
...
}
这些设置确实将呈现的控制器顶部移出了状态栏,但状态栏仍然受到影响。我是否遗漏了某个属性,可以阻止我的视图控制器更新状态栏样式?