Подтвердить что ты не робот

Изменение основного цвета заголовка навигации в MFMailComposeViewController

У меня нет проблем для изменения цвета основного заголовка навигации на обычном viewController, но на MFMailComposeViewController это невозможно. Я могу менять цвета кнопок (отменить и отправить), я могу установить фон панели навигации, но не изменить цвет заголовка. Я не хочу устанавливать новый заголовок (видимо, он не позволяет Apple), я просто хочу изменить цвет: '(

Пожалуйста, помогите мне. Благодаря

4b9b3361

Ответ 1

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIColor whiteColor],UITextAttributeTextColor, 
                                            [UIColor blackColor], UITextAttributeTextShadowColor, 
                                            [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];

или

navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor yellowColor] forKey:UITextAttributeTextColor];

Надеемся на его работу для вас.

Ответ 2

Это правильный ответ для iOS 7, 8, 9 и 10:

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[[picker navigationBar] setTitleTextAttributes:[NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:NSForegroundColorAttributeName]];

Вот почему:

Отметка с меткой выше (по Mani), ссылающаяся на [UINavigationBar appearance], неверна, так как она изменит цвет заголовка в UINavigationBar, который также выталкивает MFMailComposeViewController, что было следствием того, что я не сделал хотеть. Вам нужно специально получить сборщик NavBar, как мой код.

Настройка tintColor также неверна, как и для iOS 7 (другой ответ Mani), поскольку он устанавливает цвета кнопок, а не заголовок.

Кроме того, UITextAttributeTextColor теперь устарел, используйте NSForegroundColorAttributeName.

Ответ 3

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init];
    picker.mailComposeDelegate = self;
    [[picker navigationBar] setTintColor:[UIColor blackColor]];

Ответ 4

Для цветов, отличных от черного, используйте этот код:

MFMailComposeViewController *mailController  = [MFMailComposeViewController new];

            [mailController.navigationBar setTintColor:[UIColor colorWithHue:240.0f/359.0f
                                                                  saturation:85.0f/100.0f 
                                                                  brightness:60.0f/100.0f 
                                                                       alpha:0.0f]];