NSObject 서브 클래스에서 MFMailComposeViewController를 표시하려고합니다. 시나리오는 다음과 같습니다NSObject에서 MFMailComposeViewController 제시
- 나는이 과정에 대한 모든 논리가 NSObject의 서브 클래스로이의 ViewController에서 촬영
- 어떤 과정을 시작하는 버튼을 눌러 어떤 사용자에 UIViewController 하위이
- 만약 과정에 문제 UIAlertView를 보여줍니다.
- 이 alertView의 버튼 중 하나는 사용자가 나에게 피드백을 보낼 수 있도록 mailComposer를 열어야합니다.
NSObject 서브 클래스에서 현재 mailComposer를 사용하려고하면 "클래스 계층 구조에없는 모달보기 컨트롤러를 표시하려고합니다."라는 메시지가 나타납니다. 그래서 viewController를 MFMailComposeViewController의 델리게이트로 설정하고 있습니다. 하지만 alertView에 "피드백 보내기"버튼을 터치하면 사라지고 같은 "클래스 계층 구조에없는 모달보기 컨트롤러를 표시하려고합니다"오류가 발생합니다.
UIWindow *window = [UIApplication sharedApplication].keyWindow;
UIViewController *rootViewController = window.rootViewController;
NSLog(@"rvc - %@", [rootViewController description]);
을하지만, RVC는 (null)와 같다는 것을 나에게 보여 로그 : 나는 rootViewController이 방법을 무엇 로그인을 시도하고있다. 직접 NSObject에서 mailController를 직접 표시 할 수 있습니까? 아니면 올바른 방법으로 수행 할 수 있습니까?
창 참조를 얻으려면 다음 코드를 시도하십시오. AppDelegate * appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate]; UIViewController * rootVC = [appDelegate.window rootViewController]; – Mrunal
@Mrunal UIViewController * rootVC = [UIApplication sharedApplication] .keyWindow.rootViewController;를 사용하는 것이 훨씬 쉽습니다. 앱 대표를 참여시킬 필요가 없습니다. – rmaddy