在显示视图控制器后更改iOS状态栏颜色或导航栏颜色?

在显示视图控制器后更改iOS状态栏颜色或导航栏颜色?,ios,objective-c,iphone,status,Ios,Objective C,Iphone,Status,所以我使用的是第三方api,特别是: 这个API的作用基本上是让我进行以下调用: [[TwitchKit sharedPlugin] presentStreamForChannelNamed:channel.user mode:TKStreamPresentationModeRemainInApp]; 其中channel.user是一个带有Twitch频道名称的NSString,在当前视图上弹出一个新视图,其中包含我请求的视频流 我看不出有什么办法可以改变Twitch的来源,所以我一直坚持到

所以我使用的是第三方api,特别是:

这个API的作用基本上是让我进行以下调用:

[[TwitchKit sharedPlugin] presentStreamForChannelNamed:channel.user mode:TKStreamPresentationModeRemainInApp];
其中channel.user是一个带有Twitch频道名称的NSString,在当前视图上弹出一个新视图,其中包含我请求的视频流

我看不出有什么办法可以改变Twitch的来源,所以我一直坚持到底

然而,我的应用程序使用了深色,Twitch的popover顶部看起来像一个导航条,但它是白色的(默认苹果色)。因为我的配色方案是深色的,所以我的状态栏是白色的。因此,当Twitch覆盖弹出时,状态栏变得不合理

有两种简单的解决方案:

  • 当Twitch的视图出现时,使状态栏变黑
  • 使Twitch的导航条变暗
不幸的是,我似乎不能让这两个工作。在当前的StreamForChannel呼叫之后,我尝试了以下方法:

[self.presentedViewController.navigationController.navigationBar setBackgroundColor:[UIColor purpleColor]];
但是没有骰子

我还尝试:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
几乎没有成功


发生此转换时,如何将状态栏设置为黑色,或将新控制器的状态栏设置为黑色?

您必须为导航栏设置bartintcolor,如果需要黑色状态栏,请将窗口的背景色设置为黑色,并将状态栏样式设置为BlackTransparent

[self.presentedViewController.navigationController.navigationBar setPartIntColor:[UIColor purpleColor]]

[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleBlack半透明]

[[[UIApplication sharedApplication]窗口]setBackgroundColor:[UIColor blackColor]]


希望它能起作用。

我已经试过演示以下解决方案对我有效

转到info.plist,添加属性“查看基于控制器的状态栏外观”,并将其设置为“否”

将以下代码添加到您的应用程序代理

[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault]


这将使应用程序的状态栏变黑。

我认为您应该通过在self.window.rootViewController中循环视图控制器来查看应用程序视图控制器层次结构,并检查TwitchKit导航控制器类。然后试试你上面的变色方法。嗨@AshishP.,所以我开始认为这是一个时间问题?我这样做:[[TwitchKit sharedPlugin]PresentStreamForChannelName:channel.user模式:TkstreamPresentationModeremainApp];NSArray*controllerArray=[[自导航控制器]视图控制器];对于(UIViewController*控制器阵列中的控制器)NSLog(@“%@”,控制器);TwitchKit控制器甚至不在堆栈中-我想我正在视图实例化之前更改状态栏。如何解决此问题?如何将
setStatusBarStyle…
调用放置在正在显示的视图控制器的
视图中将出现:
?如果您有权访问它,也就是说。不幸的是,这不起作用,没有可见的更改…而且,UIStatusBarStyleBlackTranslucent被去除了润滑。