Я обнаружил, что простая категория для MFMailComposeViewController также работает. Так как мое приложение вращается под любым углом, я создал и связал его в MFMailComposeViewController + Rotate.h:
#import <Foundation/Foundation.h>
#import <MessageUI/MFMailComposeViewController.h>
@interface MFMailComposeViewController (Rotate)
@end
и MFMailComposeViewController + Rotate.m
#import "MFMailComposeViewController+Rotate.h"
@implementation MFMailComposeViewController (Rotate)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
// return the desired orientation mask from http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html
return /*mask*/;
}
@end
В целях тестирования базовой линии (iOS 3.1.3) мне не нужно помещать его в контроллер корневого представления.
Стоит отметить, что ДО того, как я это сделал, после того, как мое приложение загрузит MFMailComposeViewController, оно перестанет вращаться в любую другую ориентацию, даже после того, как MFMailComposeViewController будет отклонен! Теперь мое приложение остается свободно вращающимся.