MFMailComposeViewController Сбои из-за глобальных свойств внешнего вида на iOS6

Я получаю следующий сбой, когда я представляю:MFMailComposeViewController

2013-11-08 11:04:05.963 [7108:1603] *** Assertion failure in NSDictionary *_UIRecordArgumentOfInvocationAtIndex(NSInvocation *, NSUInteger, BOOL)(), /SourceCache/UIKit/UIKit-2380.17/UIAppearance.m:1118
2013-11-08 11:04:06.032 [7108:1603] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unknown key, "NSColor" in title text attributes dictionary'

мы отследили его до следующей настройки внешнего вида в моем AppDelegate'sapplication:didFinishLaunchingWithOptions: метод:

        [[UINavigationBar appearance] setTitleTextAttributes:
            @{NSForegroundColorAttributeName : [UIColor whiteColor]}];

Комментируя эту строку, добьемся цели, но разрушаем остальную часть приложения, поэтому я попытался специально установить titleTextAttributes в пустой словарь для:MFMailComposeViewController

Попытка № 1

        [[UINavigationBar appearanceWhenContainedIn:
            NSClassFromString(@"MFMailComposeViewController"), nil]
            setTitleTextAttributes:@{ }];

Это приводит к той же аварии. А также

        [[UINavigationBar appearanceWhenContainedIn:
            NSClassFromString(@"MFMailComposeViewController"), nil]
            setTitleTextAttributes:nil];

также приводит к той же аварии.

Попытка № 2

Я заметил, чтоMFMailComposeViewController этоUINavigationControllerтак что, возможно, глобальные настройки внешнего вида локализованы для UIViewControllersвнутри UINavigationController. Я собрал некоторый код, чтобы выяснить, какие контроллеры представления находятся внутри MFMailComposeViewController:

        for (UIViewController *viewController in mailViewController.viewControllers) {
            NSLog(@"%@", NSStringFromClass([viewController class]));
        }

Что приводит к выводу:

2013-11-08 11:04:05.936 [7108:907] MFMailComposeInternalViewController

Так я попробовал(хотя этоплохая практика полагаться на Apples private view контроллеры):

        [[UINavigationBar appearanceWhenContainedIn:
            NSClassFromString(@"MFMailComposeViewController"), nil]
            setTitleTextAttributes:@{ }];

А также

        [[UINavigationBar appearanceWhenContainedIn:
            NSClassFromString(@"MFMailComposeViewController"), nil]
            setTitleTextAttributes:nil];

Но это все равно приводит к той же аварии!

Попытка № 3

        // right before instantiating the MFMailComposeViewController
        [[UINavigationBar appearance] setTitleTextAttributes:@{ }];

А также

        [[UINavigationBar appearance] setTitleTextAttributes:nil];

Затем восстановление глобальных свойств внешнего вида в блоке завершенияdismissViewController:animated:completion:

Тем не менее, этот подход нетоже не работает. Кто-нибудь знает, как установить titleTextAttributes на глобальномUINavigationBar появление без сбоев MFMailComposeViewController?

Ответы на вопрос(3)

Ваш ответ на вопрос