MFMailComposeViewController представлен и работает отлично, когда я не настраиваю шрифты в своем приложении. Но когда я это делаю, в 50% случаев он был представлен и вызывается непосредственно его делегатом с mailComposeController:didFinishWithResult:
с результатом MFMailComposeResultCancelled
точно так же, как если бы пользователь просто попытался его закрыть.MFMailComposeViewController не работает при настройке шрифта с прокси-сервером UIAppearance
А также вызвать эту ошибку в консоли:
_serviceViewControllerReady:error: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"
Похоже почта композитор не нравится внешний вид прокси, но проблема в том, что это не событие можно де отключить внешний вид прокси для него.
Для каждой панели навигации в моем приложении у меня есть собственный дизайн. Для достижения этой цели я использовал прокси-сервер, как внешний вид в этом:
UIImage *navBarBackground = [UIImage stretchableHorizontalImageNamed:@"navbar-background"];
[[UINavigationBar appearance] setBackgroundImage:navBarBackground forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"navbar-shadow"]];
[[UINavigationBar appearance] setTitleTextAttributes:@{
UITextAttributeTextColor: [UIColor colorWithRed:0.965f green:0.635f blue:0.647f alpha:1.f],
UITextAttributeFont : [UIFont brothersBoldFontOfSize:20.f],
UITextAttributeTextShadowColor: [UIColor blackColor],
UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, -1)]
}];
UIBarButtonItem *navBarButtonItemAppearance = [UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil];
[navBarButtonItemAppearance setTitleTextAttributes:@{
UITextAttributeTextColor: [UIColor colorWithRed:0.478f green:0.008f blue:0.023f alpha:1.f],
UITextAttributeFont : [UIFont brothersBoldFontOfSize:17.f],
UITextAttributeTextShadowColor: [UIColor colorWithWhite:1.f alpha:0.3f],
UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, 1)]
} forState:UIControlStateNormal];
я удалил некоторые базовые настройки для пирог с folowing:
[[UINavigationBar appearanceWhenContainedIn:[UIPopoverController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
Это работает отлично для пирог. Но невозможно удалить его для почтового композитора, даже когда я использую «когда он содержится в« MFMailComposeViewController »и устанавливает его в nil
, он все еще здесь.
Я также пытаюсь подклассифицировать его или установить системный шрифт, но это ничего не меняет. Он был представлен, напечатал ошибку, позвонил своему делегату и уволился. Я только что увидел, что, когда он работает, шрифт не применяется системой, и когда ему не предоставлен пользовательский шрифт, как показано ниже.
Эй, у тебя есть решение для этого? Потому что я столкнулся с той же проблемой, а также с поиском в Интернете через пару дней. Если вам удастся решить эту проблему, пожалуйста, дайте мне знать ... :) – Krunal
Решений пока нет. –
У меня есть решение .... если вы установили пользовательские шрифты с 'UINavigationBar' в любом из ваших классов, это повлияет на' MFMailComposeViewController'. Таким образом, вы удаляете пользовательский шрифт Navigationbar из всех классов, он будет работать нормально. Я думаю, что это единственное решение. Возможно, вы установили пользовательские шрифты с помощью Navigationbar ... :) – Krunal