撰写电子邮件时设置UINavigationBar标题颜色

时间:2019-06-26 16:46:55

标签: ios xamarin uiviewcontroller xamarin.ios

我有一个包含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,并且它似乎没有使用全局外观值。

1 个答案:

答案 0 :(得分:0)

Xamarin.IOS中:

如果要更改导航栏文本颜色,请按以下方式编码:

UIStringAttributes uIStringAttributes = new UIStringAttributes();
uIStringAttributes.ForegroundColor = UIColor.YouWantColor; //such as UIColor.Green
NavigationController.NavigationBar.TitleTextAttributes = uIStringAttributes;

enter image description here

如果要更改导航栏和状态栏,编码如下:

NavigationController.NavigationBar.BarTintColor = UIColor.YouWantColor;
// Color you want, such as UIColor.Green

enter image description here