2014-03-29 5 views
0

imageviewcontroller에서 메일을 보내려고했는데 정상적으로 작동하고 메일이 캡처 된 이미지와 함께 성공적으로 전송됩니다. 보내기 버튼을 누를 때 mailcomposeviewcontroller는dismissViewControllerAnimated : 초기 컨트롤러로 내 viewcontroller 이동

코드 imageviewcontroller에 사용 .. 해고 및 로그인 목적을 위해 사용되는 intial 컨트롤러를 보여 주지만, 실제로는 현재 뷰 컨트롤러 즉, imageviewcontroller로 이동해야한다

- (IBAction)mail_button:(id)sender 
{ 

if ([MFMailComposeViewController canSendMail]) 
{ 

    UIGraphicsBeginImageContext(self.view.bounds.size); 

    composeViewController = [[MFMailComposeViewController alloc] init]; 
    // [composeViewController setMailComposeDelegate:self]; 
    composeViewController.mailComposeDelegate = self; 
    // [composeViewController setToRecipients:@[@"[email protected]"]]; 
    [composeViewController setSubject:@"Dressface Mail"]; 
    [composeViewController setMessageBody:@"HI i am using dressface application its very awesome you too try this." isHTML:NO]; 
    UIImage *myimage = [UIImage imageNamed:@"Default.png"]; 
    NSData *imgdata = UIImagePNGRepresentation(myimage); 
    [composeViewController addAttachmentData:imgdata mimeType:@"image/png" fileName:@"Dressfaceimage"]; 
    [self presentViewController:composeViewController animated:YES completion:nil]; 
} 


} 

- (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 
[controller dismissViewControllerAnimated:YES completion:nil]; 
} 

누구든지 mailcomposeviewcontroller를 닫고 mail_button이 있던 이전 컨트롤러로 돌아갈 수 있습니다.

+0

이전에 ViewController로 돌아 가야합니다. 어디에서 호출 했습니까? 당신이 돌아가고 싶은 ViewController입니까? – MCMatan

+0

당신은'[self dismissViewControllerAnimated : YES completion : nil];' – Alladinian

+0

을 시도 할 수 있습니다. @Alladinian, 예. 먼저 "self"를 "controller"와 같은 효과를 시도했습니다 – sathya

답변

0

당신은 또한 메일 구성보기를 관리하는 것처럼이 MFMailComposeViewController가 didFinishWithResult 방법에 전달 기각해서는 안 MFMailComposeViewController

[[controller presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 
+0

예, 위의 코드를 시도했다가 다시 로그인 컨트롤러로 푸시됩니다. – sathya

+0

위의 코드는 시뮬레이터에서 제대로 작동하지 않지만 기기에서 제대로 작동합니다 ... 제안 해 주셔서 감사합니다. – sathya

0

해제 대리자 메서드에이 줄을 쓸 수 있습니다. 는 수신기에 의해 발표 된 뷰 컨트롤러를 일축 것 같이 대신

[self dismissViewControllerAnimated:YES completion:nil]; 

를 호출해야합니다, 그건 당신이 MFMailComposeViewController 제시하는 뷰 컨트롤러입니다.

+0

예, 처음에 제안을 시도했지만 로그인 컨트롤러에 다시 푸시되었습니다 – sathya

+0

위의 코드는 시뮬레이터에서 작동하지 않았지만 장치에서 제대로 작동했습니다 ... 제안 해 주셔서 감사합니다. – sathya