4

내가 시도한 것처럼 보이지만 사용자가 링크를 이메일로 보내기로 선택할 때 나타나는 이메일 화면 (버튼 번호는 MFMailComposeViewController)은 항상 기본 파란색으로 표시됩니다.기본 파란색에서 MFMailComposeViewController에 대한 UIBarButtonItems의 색상을 어떻게 지정합니까?

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.000 green:156/255.0 blue:51/255.0 alpha:1]]; 
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 
[[UINavigationBar appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName: [UIColor whiteColor] }]; 

을 그리고 그것은 참으로 MFMailComposeViewController 아니라 버튼의 제목 색상 않습니다

내 AppDelegate에이 있습니다. 어떻게해야합니까?

다른 모든 곳에서 흰색으로 표시되면 상태 표시 줄도 검은 색으로 유지됩니다.

+0

중복 가능성 http://stackoverflow.com/questions/19333855/change-navigation-button-color-in-mfmailcomposerviewcontroller-on-ios-7) – dlinsin

답변

15
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 
mailController.mailComposeDelegate = self; 
[mailController setToRecipients: [NSArray arrayWithObjects:@"recipients", nil]]; 
[mailController setSubject: @"Contact Us"]; 
[mailController setMessageBody: @"Mail Body" isHTML:NO]; 
[[mailController navigationBar] setTintColor: [UIColor blackColor]]; //color 
[self presentViewController: mailController animated:YES completion:^{ 
    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent]; 
}]; 

는 아이폰 OS 6 있기 때문에, MFMailComposeViewController (그리고 몇몇 다른 뷰 컨트롤러)가 앱에서 사용되는 스타일을 상속하지 않습니다 같은 별도의 프로세스에서 실행됩니다. 위의 방법을 사용하면 가장 최신 SDK를 사용하고 있다고 가정 할 때 iOS 7에서 작동하는 데 도움이 될 수 있습니다. You can read more about remote view controllers here.

+0

흠, 상태 표시 줄이 여전히 검은 색으로 남아있는 이유는 무엇입니까? 귀하의 솔루션은 UIBarButtonItems에 대해 훌륭하게 작동했습니다. –

+0

@DougSmith 업데이트 된 코드를 확인하십시오. 문제가 해결 될 수도 있습니다. – Terry

+0

당신은 M을 가지고 MailController를 호출하지 말아야합니다 ... – DjimOnDev

0

AppDelegate의 UIBarButtonItem에 대한 전역 색조를 설정하여 MFMailComposeViewController가 자체 단추의 색으로 사용할 수 있도록 설정할 수 있습니다.

let barButtonItemAppearance = UIBarButtonItem.appearance() 
    barButtonItemAppearance.tintColor = KK.GRAPHICS.COLOR_WHITE 
([iOS 7의 MFMailComposerViewController 변화 네비게이션 버튼 색]의