2013-06-05 2 views
0

MFMailComposeViewController를 사용자 정의하고 있습니다. ios 5.0 및 ios 5.1에서는 제대로 작동하지만 ios 6에서는 제대로 작동하지 않습니다. 사용자 정의 보내기 및 취소 버튼은 mailcontroller에 표시되지 않습니다.MFMailComposeViewController 사용자 정의

sendBtn = mailer.navigationBar.topItem.rightBarButtonItem; 
cancelBtn = mailer.navigationBar.topItem.leftBarButtonItem; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation.png"] forBarMetrics:UIBarMetricsDefault]; 

UINavigationItem *mailVCNavItem = [mailer.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:@"cancel-button-hover.png"] forState:UIControlStateNormal]; 
[backButton addTarget:oldCancelBarButton.target action:oldCancelBarButton.action forControlEvents:UIControlEventTouchUpInside]; 
[backButton setFrame:CGRectMake(0, 0, 55, 28)]; 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 

UIButton *sendbtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[sendbtn setImage:[UIImage imageNamed:@"send-btnComment.png"] forState:UIControlStateNormal]; 
[sendbtn addTarget:self action:@selector(sendMail:) forControlEvents:UIControlEventTouchUpInside]; 
[sendbtn setFrame:CGRectMake(0, 0, 55, 28)]; 
self.navigationItem.rightBarButtonItem =[[UIBarButtonItem alloc] initWithCustomView:sendbtn]; 
+2

제대로 작동하지 않는다는 것은 무엇을 의미합니까? 오류 메시지 란 무엇입니까? –

+0

오류가 표시되지 않지만 사용자 정의 보내기 및 취소 버튼이 메일 컨트롤러에 표시되지 않습니다. –

답변

1

MFMailComposeViewController과 관련 페이스 북과 트위터 공유 뷰는이 컨트롤러가 다른 프로세스에서 실행되는 것을 의미 아이폰 OS 6에 원격 뷰 컨트롤러를 통해 구현되며, 더 이상 가능하지 않다 :

내 코드입니다 속성이나 하위 뷰에 직접 액세스하여 사용자 정의 할 수 있습니다. 그래도 UIAppearence을 통해 그렇게 할 수는 있지만 iOS 6에서는 더 이상 버튼 교체로 할 수 없습니다.