所以我使用第三方api,具体来说,这个: https://github.com/twitchtv/twitch-ios-plugin-bin
这个API的作用基本上就是让我做这个电话:
[[TwitchKit sharedPlugin] presentStreamForChannelNamed:channel.user mode:TKStreamPresentationModeRemainInApp];
其中channel.user是一个带有Twitch频道名称的NSString,并且新视图会弹出我正在请求的视频流的当前视频。
我没有看到任何改变Twitch来源的方法,所以我一直坚持下去。
但是,我的应用程序采用深色配色方案,而Twitch的popover在顶部看起来像导航栏,但它是白色的(默认Apple颜色)。由于我的配色方案很暗,我的状态栏是白色的。因此,当Twitch叠加层弹出时,会使状态栏不合理。
有两个简单的解决方案:
不幸的是,我似乎无法让其中任何一个工作。我在presentStreamForChannel调用之后尝试了这个:
[self.presentedViewController.navigationController.navigationBar setBackgroundColor:[UIColor purpleColor]];
但没有骰子。
我也尝试过:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
收效甚微。
如何在发生此转换时将状态栏设为黑色,或者让新控制器的栏变暗?
答案 0 :(得分:1)
我试过以下解决方案正在为我工作。
转到info.plist,添加属性“查看基于控制器的状态栏外观”并将其设置为“NO”。
将以下代码添加到您的应用代表。
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
这会使应用程序中的状态栏变黑。
答案 1 :(得分:0)
您必须为导航栏设置bartintcolor,如果您想要黑色状态栏,请将窗口的背景颜色设置为黑色,并将状态栏样式设置为黑色半透明。
[self.presentedViewController.navigationController.navigationBar setBarTintColor:[UIColor purpleColor]];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent];
[[[UIApplication sharedApplication]窗口] setBackgroundColor:[UIColor blackColor]];
希望它能奏效。