我正在尝试在应用程序中打开“电子邮件窗口”,但是导航控制器似乎掩盖了顶部具有“取消”和“发送”的工具栏。

我相信原因是我打电话

 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:^{}];
            }

        }


从一个子ViewView控件,该子控件控制滚动视图内的视图(用于分页)。

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

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

谢谢!

最佳答案

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

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

07-24 09:44
查看更多