从ChildViewController呈现ModalView

时间:2013-10-22 15:15:56

标签: ios ios7 modalviewcontroller viewcontroller childviewcontroller

在我的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有一个名为email的选项,所以在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之上。

Anyideas赞赏。

此致 兰吉特。

1 个答案:

答案 0 :(得分:0)

尝试使用[self presentViewController]而不是modalview。如果这没有帮助,您可以通过向rootVC发送通知来实现此目的。哪会破坏你的shareVC并呈现emailVC。 -