Так что я возился с проектом, убивающим время и пытающимся укрепить свои «навыки», и это подводит меня к моему вопросу.
У меня все работает. Работал над ошибкой «keyWindow устарела в iOS 13.0».
Я использую только Objective- C в своем проекте, так как это то, что у меня на данный момент лучше всего известно.
Текущий способ:
-(UIColor*)statusBarColor
{
UIColor *color = [UIColor colorWithRed:45/255.0f green:45/255.0f blue:45/255.0f alpha:1.0f];
return color;
}
- (void)setStatusBarBackgroundColor:(UIColor *)color
{
if (@available(iOS 13, *)) {
UIView *view = [[UIView alloc]initWithFrame:[[UIApplication sharedApplication] delegate].window.windowScene.statusBarManager.statusBarFrame] ;
[[[UIApplication sharedApplication] delegate].window addSubview:view];
if ([view respondsToSelector:@selector(setBackgroundColor:)]) {
view.backgroundColor = color;
}
}
}
Затем я вызываю блок в моем viewDidLoad / viewWillAppear.
[self setStatusBarBackgroundColor:[self statusBarColor]];
Так что я думаю, что мой главный вопрос будет, если есть лучший способ достичь это? Конкретно в Objective- C? и будет ли это безопасно для AppStore, если я решу отправить его в конце?
Спасибо.