我正在尝试在应用程序中打开“电子邮件窗口”,但是导航控制器似乎掩盖了顶部具有“取消”和“发送”的工具栏。
我相信原因是我打电话
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
是正确的解决方案(尽管您显示的代码无效)。您需要确保在层次结构中导航得足够远,以到达“根”视图控制器并从那里显示。