2014-03-29 98 views
0

我試圖從imageviewcontroller發送郵件,它工作正常,郵件與捕獲的圖像成功發送。按下發送按鈕時,mailcomposeviewcontroller被駁回,顯示用於登錄目的INTIAL控制器,但實際上它應該移動到當前視圖控制器即imageviewcontroller ..在imageviewcontroller使用dismissViewControllerAnimated:將我的視圖控制器移動到初始控制器

代碼,

- (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

它應該回到previes ViewController,你從哪裏調用它?是你想回去的ViewController? – MCMatan

+0

你可以嘗試'[self dismissViewControllerAnimated:YES completion:nil];' – Alladinian

+0

@Alladinian,是的第一我試過「自我」的效果與「控制器」相同 – sathya

回答

0

你也可以這樣寫行委託方法駁回MFMailComposeViewController

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

是的,嘗試了上面的代碼,它再次推回到登錄控制器。 – sathya

+0

上面的代碼沒有在模擬器上鍛鍊,但在設備上正常工作......感謝您的建議。 – sathya

0

你不應該解僱MFMailComposeViewController在didFinishWithResult方法中傳遞,因爲它管理郵件構成圖。你應該改爲調用

[self dismissViewControllerAnimated:YES completion:nil]; 

,因爲它會駁回,是由接收機提供的視圖控制器,這是對你提出MFMailComposeViewController視圖控制器。

+0

雅,最初嘗試了你的建議,它推回到登錄控制器 – sathya

+0

上述代碼沒有在模擬器上鍛鍊,但在設備上正常工作......感謝您的建議。 – sathya

相關問題