Ios DismissViewController激活:将我的viewcontroller移动到初始控制器

Ios DismissViewController激活:将我的viewcontroller移动到初始控制器,ios,objective-c,xcode,mfmailcomposeviewcontroller,Ios,Objective C,Xcode,Mfmailcomposeviewcontroller,我尝试从imageviewcontroller发送邮件,它工作正常,邮件与捕获的图像一起发送成功。当按下发送按钮时,mailcomposeviewcontroller将被解除,并显示用于登录目的的初始控制器,但实际上它应该移动到当前视图控制器,即imageviewcontroller imageviewcontroller中使用的代码 - (IBAction)mail_button:(id)sender { if ([MFMailComposeViewController canSendMai

我尝试从imageviewcontroller发送邮件,它工作正常,邮件与捕获的图像一起发送成功。当按下发送按钮时,mailcomposeviewcontroller将被解除,并显示用于登录目的的初始控制器,但实际上它应该移动到当前视图控制器,即imageviewcontroller

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:@[@"example@email.com"]];
    [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_按钮的上一个控制器。

您也可以在委托方法中写入这一行来关闭
MFMailComposeViewController

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

您不应该忽略在didFinishWithResult方法中传递的MFMailComposeViewController,因为它管理邮件组合视图。你应该打电话

[self dismissViewControllerAnimated:YES completion:nil];

因为它将取消接收者提供的视图控制器,即您在其上提供MFMailComposeViewController的视图控制器。

它应该返回到预览视图控制器,您从哪里调用它?这是您要返回的ViewController吗?您可以尝试
[自我解除ViewController激活:是完成:无]
@Alladinian,是的,首先我尝试了“self”与“controller”相同的效果@PiratM,是的,它应该返回到上一个controller,但在我的情况下,它会返回到登录页面,而不是上一个controller,我在不同的类中尝试了相同的代码它工作正常,但仅在cameraviewcontroller类中,其行为不正常。上述代码未在模拟器上运行,但在设备上正常工作。。。谢谢你的建议。是的,尝试了上面的代码,它再次推回到登录控制器。上面的代码没有在模拟器上运行,但在设备上正常工作。。。谢谢你的建议。是的,最初尝试过你的建议,它会推回到登录控制器上面的代码没有在模拟器上运行,但在设备上工作正常。。。谢谢你的建议。