如果没有ActionBar / NavigationBar的要求,我无法解决如何在本机脚本中更改IOS状态栏的问题。
我尝试过:
var navController = frame.topmost().ios.controller;
let navigationBar = navController.navigationBar;
navigationBar.barStyle = UIBarStyle.Black;
但是当没有ActionBar时,这完全失败!
答案 0 :(得分:1)
此解决方案有效!
将以下内容添加到app/App_Resources/iOS/Info.plist
。
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
它将执行以下操作:
添加后,您可以使用下面的代码段更改状态栏样式的颜色:
// white status bar text
UIApplication.sharedApplication.setStatusBarStyleAnimated(UIStatusBarStyle.LightContent, true);
// black status bar text
UIApplication.sharedApplication.setStatusBarStyleAnimated(UIStatusBarStyle.Default, true);
如果您想在应用程序完成加载后(在启动屏幕之后)或当它变为活动状态时更改状态栏,则需要在UiApplicationDelegate
函数内设置以上代码段。例如,请参见链接:
https://docs.nativescript.org/core-concepts/application-lifecycle#ios-uiapplicationdelegate
答案 1 :(得分:0)
@Jammer答案是正确的,我能够在Nativescript-Angular上使用此方法设置状态栏文本的颜色,重要的是要提及,您需要清除build / cache文件夹(tns platform remove ios
)每次更新Info.plist
来更新下一个版本的配置时,即使在NS7 +上,也会出现此小错误
注意:您还需要tns-platform-declarations
以避免常见的打字稿错误。另外请记住,这仅适用于iOS,因此需要添加验证以避免Android上出现任何问题。