2015-11-02 1 views
2
 MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc]init]; 
     [UINavigationBar appearance].barTintColor = [UIColor colorWithRed:0.0f/255.0f green:127.0f/255.0f blue:254.0f/255.0f alpha:1.0]; 
     [[messageController navigationBar] setTintColor: [UIColor whiteColor]]; 
     messageController.messageComposeDelegate = self; 
     [messageController setBody:message]; 
     [messageController navigationBar].translucent =NO;            
     [messageController.navigationBar setBarTintColor:[UIColor colorWithRed:0.0f/255.0f green:127.0f/255.0f blue:254.0f/255.0f alpha:1.0]]; 
     // Present message view controller on screen 
     [self presentViewController:messageController animated:YES completion:^{ 
     [messageController navigationBar].translucent = NO; 
     }]; 

Я пользуюсь этим кодом. Пожалуйста, дайте мне знать, если что-то не хватает.Как изменить цвет навигационной панели в mfmessagecomposeviewcontroller при представлении ее в ios 9

+0

Пожалуйста, отредактируйте ваше сообщение, чтобы прочитать его код. Подсказка: отложите каждую строку на 4 пробела, чтобы сформировать блок кода. – Avi

+0

Выполнено редактирование кода. –

+0

Попробуйте переместить строку, которая устанавливает tintColor в обработчик завершения презентации. – Avi

ответ

3

Вам просто нужно добавить две строки, чтобы изменить цвет панели навигации.

Для MFMailComposeViewController.

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 

[mc.navigationBar setTintColor:[UIColor whiteColor]];//cancel button will be of white color. 
[mc.navigationBar setBarTintColor:[UIColor blackColor]];//bar color will be black. 

if (mc != nil) 
     { 
      mc.mailComposeDelegate = self; 
      [mc setSubject:emailTitle]; 
      [mc setMessageBody:bodyText isHTML:YES]; 
      [mc setToRecipients:toRecipents]; 

      [self presentViewController:mc animated:YES completion:nil]; 

     } 

Для MFMessageComposeViewController

Создать один метод, как показано ниже для изменения панели навигации цвет.

- (void)setNavBarColor:(UIColor *)navBarColor titleColor:(UIColor *)titleColor { 
    [[UINavigationBar appearance] setBarTintColor:navBarColor]; 
    [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                  [UIFont fontWithName:@"Futura-Medium" size:17.0f], 
                  UITextAttributeFont, 
                  titleColor, 
                  UITextAttributeTextColor, 
                  nil]]; 
} 

И написать этот метод, прежде чем инициализируется MFMessageComposeViewController. (Это очень важно, иначе он не будет работать)

Этот код работает для меня в ИОС 9.

Может быть, это поможет вам.

+0

Черный цвет или какой-либо другой цвет не отображается в навигационной панели. Пробовал это тоже. –

+0

Я использую mfmessagecomposeviewcontroller. Пробовал в этом. –

+0

Это не работает для меня, с MFMessageComposeViewController. – Avi

Смежные вопросы