버튼을 사용하여 일부 콘텐츠를 공유하는 UIActivityViewController를 보여주는 매우 간단한 경우가 있습니다. 문제는 사용자가 이메일을 취소하거나 보낼 때 메일 작성자가 삭제되지 않는다는 것입니다. 발표자가 UITabbarController 하위 일 때 UIActivityViewController가 MFMailComposeViewController를 닫지 않는 이유는 무엇입니까?
NSArray *items = [NSArray arrayWithObjects:@"share",nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
은 내가
activityViewController.completionHandler에서 모달 뷰를 해제하려고하지만 콘솔은 다른 애니메이션이 과정에 때로는 응용 프로그램을 충돌, 그래서 이것은 해결책이 아니라고 말한다. 게다가 다른 소셜 네트워크 (페이스 북, 트위터)는 아무 것도하지 않고 잘 작동합니다.
일부 테스트 후 UIActivityViewController를 표시하는 UIViewController가 UITabBarController의 자식 인 경우에만 발생하는 것으로 나타났습니다.
UIViewController > UINavigationController > UITabbarController > Window
을하지만 난 TabBar의를 제거하면 모든 문제가 제시 해결 미세! :
UIViewController > UINavigationController > Window
해결 방법을 작동합니다 내 AppDelegate에 내가이 같은 응용 프로그램을 작성하는 경우 작동하지 않습니다 rootviewcontroller에서.
[self.view.window.rootViewController presentViewController:activityViewController animated:YES completion:NULL];
하지만 여기서 무슨 일이 일어나고 있는지 알고 싶습니다.
감사합니다. ;)
도움이된다면 '수락'을 보내 주시면 감사하겠습니다. –
흥미 롭습니다! 그러나 어떤 시스템이 현재 윈도우 *에서 활성화되어 있는지 시스템이 판단하는 방법을 이해하지 못합니다. 왜 VC가 활성 컨트롤러가 아닌 것으로 간주하는 tabbar 컨트롤러에있는 경우? – alejandromp
당신은 그것에 대해 신경 쓸 필요가 없습니다. 그것을 처리하는 시스템입니다. 그것은 그를 통해 컨트롤러를 얻는 것을 스택을 통해 뷰 컨트롤러의 트랙을 유지합니다. –