Как изменить кнопки в MFMailComposeViewController? - PullRequest
12 голосов
/ 26 августа 2011

В моем приложении я использую MFMailComposeViewController. Я поместил кнопки back и Done в строке заголовка. У меня строка заголовка должна быть черного цвета, но у меня есть фон кнопки синего цвета. Как изменить цвет фона кнопки на black в цвете?

Ответы [ 3 ]

17 голосов
/ 26 августа 2011

Сначала вы должны изменить стиль кнопки: barButton.style = UIBarButtonItemStyleBordered;

После этого цвет кнопок панели навигации можно изменить с помощью следующего кода:

[[mailComposer navigationBar] setTintColor:[UIColor blackColor]];
4 голосов
/ 31 июля 2012

Я добавил это, чтобы добавить пользовательские кнопки, заменяющие стандартные кнопки отмены и отправки:

// Fetch the UINavigationItem object of the nav bar
UINavigationItem *mailVCNavItem = [mailVC.navigationBar.items objectAtIndex:0];

// Get the old bar button item to fetch the action and target.
UIBarButtonItem *oldCancelBarButton = [mailVCNavItem leftBarButtonItem];

// Create your new custom bar button item. 
// In my case I have UIButton with image set as a custom view within a bar button item.
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setImage:[UIImage imageNamed:@"backButton.png"] forState:UIControlStateNormal];
[backButton addTarget:oldCancelBarButton.target action:oldCancelBarButton.action forControlEvents:UIControlEventTouchUpInside];
backButton.bounds = CGRectMake(0.0, 0.0, 40.0, 25.0);
[[barButtonItems objectAtIndex:0] setLeftBarButtonItem:[[UIBarButtonItem alloc] initWithCustomView:backButton]];

К сожалению, я не смог заменить кнопку Отправить.

Она просто делает кнопку бесполезной.

1 голос
/ 25 августа 2015

Для Swift (я использую Swift 1.2)

var mc: MFMailComposeViewController = MFMailComposeViewController()
mc.mailComposeDelegate = self
mc.setSubject(emailTitle)
mc.setToRecipients(toRecipients)
mc.navigationBar.tintColor = UIColor.blackColor()
...