我有一个包含WebView的ViewController。当我在WebView中单击电子邮件链接(mailto :)时,iOS将推送一个ViewController,该控件允许用户编写电子邮件。该控制器的NavigationBar中的标题为黑色文本,我找不到改变颜色的方法。我能够更改NavigationBar的背景颜色以及按钮文本颜色,但不能更改标题颜色。
我正在使用Xamarin(C#)编写此应用程序,但是如果作为解决方案提供,我应该能够翻译Swift / Objective C代码。
在我的应用程序委托中,设置了一些主题默认值。
UINavigationBar.Appearance.BarStyle = UIBarStyle.Black;
UINavigationBar.Appearance.BarTintColor = UIColor.Red;
UINavigationBar.Appearance.Translucent = false;
UINavigationBar.Appearance.TintColor = UIColor.White;
UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes()
{
TextColor = UIColor.White
});
UINavigationBar.Appearance.TitleTextAttributes.ForegroundColor = UIColor.White;
UIButton.AppearanceWhenContainedIn(typeof(UINavigationBar)).TintColor = UIColor.White;
我还在每个ViewController中设置了this.NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
。我假设这就是问题所在。我无法在撰写电子邮件视图控制器中设置BarStyle,并且它似乎没有使用全局外观值。
答案 0 :(得分:0)
在 Xamarin.IOS中:
如果要更改导航栏文本颜色,请按以下方式编码:
UIStringAttributes uIStringAttributes = new UIStringAttributes();
uIStringAttributes.ForegroundColor = UIColor.YouWantColor; //such as UIColor.Green
NavigationController.NavigationBar.TitleTextAttributes = uIStringAttributes;
如果要更改导航栏和状态栏,编码如下:
NavigationController.NavigationBar.BarTintColor = UIColor.YouWantColor;
// Color you want, such as UIColor.Green