我的问题是,一旦我发送了电子邮件或者已经取消了Mailcomposer,我在解雇后在完成块中进行了预测。这会在执行segue之前显示前一个屏幕一瞬间。我一直试图在执行segue之前停止显示前一个屏幕,而不会在主线程上造成延迟,我尝试设置[self.view setHidden:YES];
哪个有效,但是它显示的是前一个屏幕,它只是显示了一个黑屏一瞬间,在我看来看起来更糟糕。我的第二次尝试是将视图的背景颜色设置为白色,但这似乎没有任何效果。我也尝试过使用alpha和opaque属性,但两者似乎都没有对视图产生任何影响。
有人可以建议解决这个问题吗?代码如下。
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error
{
if(error) NSLog(@"ERROR - mailComposeController: %@", [error localizedDescription]);
[self.view setHidden:YES];
self.view.backgroundColor = [UIColor whiteColor];
[self dismissViewControllerAnimated:NO completion:^{
[self performSegueWithIdentifier:@"toCompletedOrderList" sender:nil];
}];
return;
}