MFMailComposeViewController를 구현했으며 문제가 발생했습니다.dismissModalViewControllerAnimated가 superview에서 제거하기 전에 먼저 애니메이션을 적용해야합니까?
내 슈퍼 뷰에서는 버튼을 눌렀을 때 인앱 이메일을 가져 왔습니다. 사용자가 메일 양식을 보내거나 닫을 때까지 모든 것이 잘 작동합니다.
[self.view removeFromSuperview];
을 실행하기 전에 먼저 애니메이션이 끝날 때까지 기다릴 필요가있는 것처럼 보입니다. 애니메이션이 끝나기 전에이 줄이 실행되고 뷰가 제거되지 않으면 현재 UIView가 제거되지 않으므로 화면의 아무 것도 탭 할 수 없습니다. 클래스를 호출
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
[self dismissModalViewControllerAnimated:YES];
// Removes the view so that delegate is passed back to the superview
[self.view removeFromSuperview];
}
내 수퍼 액션 :
- (IBAction)buttonPressedSendMail {
MailComposerViewController *mailComposer = [[MailComposerViewController alloc] init];
[self addSubview:mailComposer.view];
[mailComposer sendMail:nil];
}
[[self view] setHidden:YES];
가있는 UIView를 숨길 작동하지만, 나는이 그 일을의 올바른 방법이라고 생각하지 않습니다.
감사합니다. 그것이 내가 오류를 발견하기 위해 한 일입니다. 그러나 이것이 최선의 방법인지 확실하지 않습니다. – AReality
다른 방법으로 코드를 업데이트하여보기 컨트롤러를 닫습니다. –
모달보기 컨트롤러가 올바르게 표시되지 않습니다. 매우 구체적인 필요가 없다면 Xavi의 대답에있는 코드를 따라갈 것입니다. –