Ril*_*ale 3 objective-c uiviewcontroller viewcontroller ios
所以我有一个 VC,当单击按钮时我会调用它(它是一个 MFMailComposeViewController),并且当发送消息时,它会关闭 ViewController,我希望它在发送完成后呈现一个不同的视图控制器。但每次发送电子邮件后它都会崩溃,而不是这样做。我知道我做错了什么,但我不确定是什么。
这是我的代码,它消除并呈现新的代码。
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
[self dismissViewControllerAnimated:true completion:nil];
[self presentViewController:_emailConfirmationPage animated:YES completion:nil];}
Run Code Online (Sandbox Code Playgroud)
我认为问题是我使用的self,但我不确定我用什么来代替它。
它崩溃了,因为您要求同时开始关闭和呈现动画。因此,您可以通过两种方式解决此问题:
等待第一个动画完成,然后再开始下一个动画。这将促使现任 VC 被解雇,并促使新 VC 的出现。当然,用户必须等待两个动画完成才能继续与应用程序交互。为此,请_emailConfirmationPage在关闭当前 VC 的完成块中出现,如下所示:
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:_emailConfirmationPage animated:YES completion:nil];
}];
Run Code Online (Sandbox Code Playgroud)动画要么解雇要么出席,但不能两者兼而有之。这可能会更好,因为用户只需等待 1 个动画,而 1 个动画很可能足以确保流畅的用户体验。
[self dismissViewControllerAnimated:NO completion:nil];
[self presentViewController:_emailConfirmationPage animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2328 次 |
| 最近记录: |