У меня есть общий лист действий (в классе NSObject), который вызывается из нескольких классов. Одним из действий является запуск электронной почты. Все отлично работает при вызове с первого загруженного NIB. Однако после того, как я переключу NIB с помощью модальных представлений, электронная почта (ее собственное модальное представление) не появится ни в одном из них (но все остальные действия работают нормально). Я предполагаю, что это потому, что это модальные представления, а не viewController, вызываемый делегатом приложения. Я предполагаю, что «rootViewController» ниже является проблемой. Я застрял. Помощь оценена.
-(void)SendEmail {
// all this NSObject to send emails
rootViewController = (UIViewController*)[(AppDelegate*)[[UIApplication sharedApplication] delegate] viewController];
// compose
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
//controller.mailComposeDelegate = self;
controller.mailComposeDelegate = self;
//format message
NSArray *recipientsArray = [[NSArray alloc] initWithObjects:@"support@A___.com", nil]; // email recipients must be in an array
[controller setToRecipients:recipientsArray];
[controller setSubject:[NSString stringWithFormat:@"A question about %@",stuff]];
//[controller setMessageBody:outputMutString isHTML:YES];
//send
if (controller) {
NSLog(@"email controller");
[rootViewController presentModalViewController:controller animated:YES];
}
}