Yes. All three are possible, but No. 2 will require the use of a private API or hacker. I took the subclass approach of MFMailComposeViewController as below
@interface CustomMailComposeViewController : MFMailComposeViewController {
}
@end
#import "CustomMailComposeViewController.h"
@implementation CustomMailComposeViewController
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed:)];
self.navigationBar.topItem.leftBarButtonItem = backButton;
[backButton release];
UITableViewController *vc = [self.viewControllers objectAtIndex:0];
UITableView *tvv = [vc view];
[[tvv toField] setUserInteractionEnabled:NO];
[[tvv ccField] setUserInteractionEnabled:NO];
[[tvv bccField] setUserInteractionEnabled:NO];
[[tvv multiField] setUserInteractionEnabled:NO];
[[tvv subjectField] setUserInteractionEnabled:NO];
}
-(void) backButtonPressed:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}
@end
To use in your code, you would have to change: [[MFMailComposeViewController alloc] init]; in [[CustomMailComposeViewController alloc] init];