dismissViewControllerAnimated打破了GUI

时间:2013-03-18 22:39:52

标签: ios objective-c uiviewcontroller uinavigationcontroller mfmailcomposeviewcontroller

在我的应用程序中,我使用MFMailComposeViewController发送邮件。 这个viewController被推送

 [self presentViewController:mailer animated:false completion:nil]; 

来自位于uiNavigationController之上的viewController。完成邮件后,我将删除带有

的mfmailcomposeviewcontroller
[self dismissViewControllerAnimated:NO completion:NULL];

问题不在于我的uinavigationController的视图没有填满整个屏幕,并且屏幕上显示的所有不属于此uinavigationcontroller的元素都变为非活动状态。我不知道如何开始解决这个问题,所以任何提示都会非常感激。

2 个答案:

答案 0 :(得分:0)

如果需要显示MFMailComposeViewController的视图控制器位于导航控制器中,那么您应该通过调用来执行此操作:

[self.navigationController presentViewController:mailer
                                        animated:YES
                                      completion:nil]; 

然后你这样解雇它:

[self.navigationController dismissViewController:mailer
                                        animated:YES
                                      completion:nil]; 

答案 1 :(得分:0)

我发现dismissViewController会改变调用视图的大小。在这个视图上有一个透明的背景我没有意识到......我可以通过简单地重新调整导航控制器的视图来轻松解决这个问题。我希望这个答案可以帮助那些遇到同样问题的人。