模态视图的工具栏模糊不清。 MFMailComposeViewController

时间:2013-05-10 20:36:52

标签: ios objective-c modalviewcontroller mfmailcomposeviewcontroller

我正在尝试在我的应用程序中显示一个电子邮件窗口,但是导航控制器会遮挡假设有取消和发送的顶部工具栏。

我相信原因是我正在打电话

 if ([MFMailComposeViewController canSendMail]) {
            MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
            controller.mailComposeDelegate = self;
            [controller setToRecipients:[NSArray arrayWithObject:@"internalapps@microstrategy.com"]];
            [controller setSubject:@"Mobile HelpDesk App"];
            [controller setMessageBody:@"" isHTML:NO];
            if (controller){
                [self presentViewController:controller animated:YES completion:^{}];
            }

        }

从控制滚动视图内部视图的子ViewController(For Paging)。

如何让工具栏位于导航栏的顶部?现在,它只显示新的电子邮件窗口,但我无法取消或发送电子邮件。

我尝试使用[self.parentViewController presentViewController:controller animated:YES completion:^{}];,但这没有做任何事情。

谢谢!

2 个答案:

答案 0 :(得分:1)

您不能在视图不在视图层次结构顶部的视图控制器中使用presentViewController:...(因此很可能不占用整个屏幕)。正如您所见,这会导致呈现的视图可能部分可见,并且可能无法响应某些区域的触摸。

尝试self.parentViewController是正确的解决方案(尽管您显示的代码无效)。您需要确保在层次结构中导航得足够远以到达“根”视图控制器并从那里出现。

答案 1 :(得分:0)

这听起来像改变一样简单:

 [self presentViewController:controller animated:YES completion:^{}];

 [self.navigationController presentViewController:controller animated:YES completion:^{}];

希望这会对你有所帮助。