0

私の rootViewController では、ボタンをクリックすると、この方法で shareViewController という childViewController を追加します

[self addChildViewController:m_shareViewController];
[[self view] addSubview:[m_shareViewController view]];
[[[[UIApplication sharedApplication] delegate] window] addSubview:m_shareViewController.view];
[m_shareViewController didMoveToParentViewController:self];

アニメーションを使用して、このビューが画面の下から中央まで表示されることを示します

このshareViewControllerにはメールというオプションがあるので、myShareViewController.mにこれを書きました

- (IBAction)email:(id)sender
{    
    MFMailComposeViewController *emailDialog = [[MFMailComposeViewController alloc] init];
    [emailDialog setMailComposeDelegate:self];
    if ([MFMailComposeViewController canSendMail])
    {
         [self presentModalViewController:composer animated:YES];  
    }
    else
    {
        return;
    }

}

//function to handle errors while sending an email
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    if (error)
    {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }
    else
    {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }

}

したがって、私が直面している問題は、emailCompose ViewController が ShareViewController の背後に表示され、淡色表示されることです。「self」を使用して emailComposeVC を提示しているため、これが発生する理由はわかっています。

しかし、私が望むのは、ShareViewController がそれを提示する必要があるということです。そして、ShareViewController の上にある必要があります。

任意のアイデアをいただければ幸いです。

よろしくランジット。

4

1 に答える 1