【发布时间】:2014-11-26 21:43:52
【问题描述】:
所以我正在使用第三方 api,特别是这个: https://github.com/twitchtv/twitch-ios-plugin-bin
这个 API 所做的基本上就是让我进行这个调用:
[[TwitchKit sharedPlugin] presentStreamForChannelNamed:channel.user mode:TKStreamPresentationModeRemainInApp];
其中 channel.user 是一个带有 Twitch 频道名称的 NSString,一个新视图会弹出我当前请求的视频流。
我看不出有什么办法可以改变 Twitch 的源代码,所以我只能坚持到底。p>
但是,我的应用程序使用深色方案,并且 Twitch 的弹出框顶部看起来像一个导航栏,但它是白色的(默认 Apple 颜色)。由于我的配色方案是深色的,所以我的状态栏是白色的。所以当 Twitch 叠加层弹出时,会导致状态栏不合理。
有两个简单的解决方案:
- 当 Twitch 的视图出现时,使状态栏变黑。
- 让 Twitch 的导航栏变暗。
不幸的是,我似乎无法让其中任何一个工作。我在 presentStreamForChannel 调用后立即尝试了这个:
[self.presentedViewController.navigationController.navigationBar setBackgroundColor:[UIColor purpleColor]];
但没有骰子。
我也试过了:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
收效甚微。
当这种转换发生时,我怎样才能让状态栏变黑,或者让新控制器的栏变暗?
【问题讨论】:
-
我认为您应该通过在 self.window.rootViewController 中循环视图控制器并检查任何 TwitchKit 导航控制器类来遍历您的应用程序视图控制器层次结构。然后尝试上述更改颜色方法。
-
嗨@AshishP.,所以我开始认为这是时间问题?我这样做了:[[TwitchKit sharedPlugin] presentStreamForChannelNamed:channel.user mode:TKStreamPresentationModeRemainInApp]; NSArray *controllerArray = [[self navigationController] viewControllers]; for (UIViewController *controller in controllerArray) NSLog(@"%@",controller);而且 TwitchKit 控制器甚至不在堆栈中——我想我在实例化视图之前更改了状态栏。我该如何解决这个问题?
-
在正在呈现的视图控制器的
viewWillAppear:中调用setStatusBarStyle...怎么样?如果您可以访问它,那就是。
标签: ios objective-c iphone status