我正在开发一款iPhone应用程序,让用户有机会在应用程序的3个不同位置发送电子邮件,并提供3种不同用途。
不是在3个不同的视图控制器中显示相同的代码来显示电子邮件编写器,我不应该开发一个单独的电子邮件类,创建一个实例,然后设置To,CC,BCC等属性,正文,HTML_Or_Not等等?
另外,如果我创建了这样一个类的实例,它会调出电子邮件编写器,那么即使在电子邮件编写器离开屏幕之前就可以发布该类吗?
答案 0 :(得分:1)
我的建议,使用内置的邮件选择器类很容易,只需坚持下去,你可以创建一个设置和显示选择器的功能,并在需要时使用它:
- (void)showMailPicker {
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
picker.navigationBar.barStyle = UIBarStyleBlack;
[picker setToRecipients: ...];
[picker setSubject:@"Title"];
// Fill out the email body text
NSString *emailBody = @"email Body...";
[picker setMessageBody:emailBody isHTML:NO];
[self presentModalViewController:picker animated:YES];
[picker release];
}
}
是的,一旦您提交了拣货员,就可以放心,并记住,一旦您出示拣货员,您就无法更改电子邮件地址,主题,身体等......
答案 1 :(得分:0)
我的方法是将包装创建,初始化,显示,解散和处理邮件编写器的所有方面的整个过程封装在一个类中,如“邮件管理器”或其他东西。
然后你可以创建和实例并设置你需要的属性,然后调用“show mail composer”或类似的东西。
我不建议发布这个管理器类,如果它将处理邮件编写器的结果的解雇和处理(即,在发送时处理错误),直到它完成它正在做的事情之后。如果你过早发布它,你可能没有任何合理的方法来解雇邮件编辑器或优雅地处理它的结果等。