2011-10-28 4 views
3

MFMailComposeViewController 사용 후 MFMessageComposeViewController 로의 이동은 직선적 인 것이지만 catch가 있습니다.MFMessageComposeViewController 취소 취소 후

이 코드 가정 :

MFMessageComposeViewController* mySMS = [[MFMessageComposeViewController alloc] init]; 
[mySMS setDelegate:self]; 
[self presentModalViewController:mySMS animated:YES]; 

그것은 메일이 방식으로 작동을하지만, SMS에서이 같은 내부 구조에 다른 대리자를 설정해야합니다

[SMS setMessageComposeDelegate:self]; 

당신이 얻을 돈 희망 오늘 일찍이 이것에 붙어 있습니다.

답변

4

당신은 위임 방법을 -(void)mailComposeController(MFMailComposeViewController*)controller didFinishWithResult (MFMailComposeResult)result error:(NSError*)error:

를 구현해야 그리고 그 안에 당신은 스스로를 해고해야

-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+4

언급 한 코드는 MFMailComposer 클래스 용입니다. 질문은 특별히 MFMessageComposer에게 질문했습니다. – Ahmed

+0

MFMessageComposer에 대해 다음을 사용해야합니다. https://developer.apple.com/library/ios/documentation/MessageUI/Reference/MFMessageComposeViewControllerDelegate_protocol/index.html#//apple_ref/occ/intfm/MFMessageComposeViewControllerDelegate/messageComposeViewController:didFinishWithResult : – Melvin

0

당신은 애플의 문서

enum MFMailComposeResult { 
    MFMailComposeResultCancelled, 
    MFMailComposeResultSaved, 
    MFMailComposeResultSent, 
    MFMailComposeResultFailed 
}; 
typedef enum MFMailComposeResult MFMailComposeResult; 

에 MFMailComposeResult을 볼 수 있습니다 그리고 당신은 해고해야한다 위임자 방법으로 직접 컨트롤러 사용

- (void) mailComposeController:(MFMailComposeViewController *)controller   didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    switch (result){ 
    case MFMailComposeResultCancelled: 
     NSLog(@"Mail cancelled"); 
     break; 
    case MFMailComposeResultSaved: 
     NSLog(@"Mail saved"); 
     break; 
    case MFMailComposeResultSent: 
     NSLog(@"Mail sent"); 
     break; 
    case MFMailComposeResultFailed: 
     NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
     break; 
    default: 
     break; 
    } 
// Close the Mail Interface 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
}