2014-02-09 2 views
0

iPhone 개발을위한 새로운 기능입니다. 내 애플 리케이션은 세 페이지에 사용자의 정보를 캡처하는 scrollview 컨트롤러가 있습니다. 사용자가 모든 정보를 완료하고 전자 메일 단추를 누르면 전자 메일을 보내야하지만 지금은 아닙니다.스크롤 뷰에서 MFMailComposeViewController를 호출하십시오.

다음은 내 코드 및 헤더 파일입니다. 내 헤더 파일은을 구현하기 때문에 MFMailComposeViewControllerDelegate을 구현하지 않습니다. 내 문제는 MFMailComposeViewControllerDelegate을 구현하지 않는 것과 관련이 있다고 생각합니다. 어떻게 이것을 재 설계해야합니까? 이메일에

헤더 파일

@interface DiveEdScrollViewController : UIViewController <UIScrollViewDelegate> 

전화 :

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
mc.mailComposeDelegate = self; 
[mc setSubject:subjectValue]; 
[mc setMessageBody:emailBody isHTML:NO]; 
[mc setToRecipients:diveContacts]; 
self presentViewController:mc animated:YES completion:NULL]; 
+1

당신은 할 수 있습니다 .h 파일의 여러 대리자를 준수해야합니다. 즉, "" "입니다. "MFMailComposeViewController'"객체를 처음 생성 한 행에서 Xcode에 중단 점을 설정할 수 있습니까? Xcode가 그곳에서 멈 춥니 다? –

답변

1

과 같이 쉼표로 분리하여 둘 이상의 프로토콜을 채택 할 수 귀하의 뷰 컨트롤러 하위 클래스 -

@interface DiveEdScrollViewController : UIViewController <UIScrollViewDelegate, MFMailComposeViewControllerDelegate > 

.m에서 메소드 구현

문서 상태로

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error

:이 방법의

귀하의 구현은 메일 작성보기를 기각한다. 이 방법의 구현은 선택 사항이지만 예상됩니다. 또한

먼저 (장치가 메일 여부를 보내는 구성되어 있는지 여부를 확인하기 위해 )이 같은 메일 작곡가를 표시하기 전에 다음 클래스의 방법으로 확인해야합니다 -

if ([MFMailComposeViewController canSendMail]) { 
     [self presentViewController:mc animated:YES completion:NULL]; 
} 
관련 문제