我有一个视图,用户可以浏览其他用户的个人资料。如果用户愿意,用户可以选择通过电子邮件发送给用户。我遇到的问题是只使用了第一个配置文件的电子邮件。
例如......
假设该视图有3个配置文件,每个配置文件都有一个唯一的电子邮件。
a@gmail.com
b@gmail.com
c@gmail.com
只有a@gmail.com被拿起。
我应该将它们存储在数组中并以这种方式选择它们吗?
或推荐另一种方法?
编辑:
为了澄清,我不想一次通过电子邮件发送每封电子邮件,它们必须对用户正在查看的配置文件是唯一的。
因此,如果他们正在查看个人资料C,他们只需要发送电子邮件至c@gmail.com。
这是我尝试过的东西:
// Profile Generator Method
- (void)createProfile
{
// I use a for loop to create each profile
// in the for loop I set the emails to the array, see below
[self.emailArray addObject:[self.profileObject objectForKey:@"email"]];
// add the emailUser method as a target to a button
}
// My Email Method
- (void)emailUser
{
for (int i = 0; i < [self.emailArray count]; i++)
{
self.emailString = [NSString stringWithFormat:@"%@", [self.emailArray objectAtIndex:i]];
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
[mc setSubject:@"Note"];
[mc setToRecipients:[NSArray arrayWithObject:self.emailString]];
mc.mailComposeDelegate = self;
if([MFMailComposeViewController canSendMail])
{
[self presentViewController:mc animated:YES completion:nil];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device is not configured to send mail." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}
}
}
编辑二:
当我在创建配置文件时记录我的emailArray时,我会看到阵列中的所有电子邮件。
当我使用emailUser方法时,只显示一个。
答案 0 :(得分:0)
如果您想分别发送多封电子邮件,则使用多个MFMailComposeViewController
将不是一个好选择。
相反,您应该通过自己的网络服务发送这些电子邮件。将您的所有电子邮件收件人传递到Web服务(PHP
,DotNet
等),它应为每封电子邮件准备唯一的正文并单独发送。
如果您无法使用网络服务,那么您应该在MFMailComposeViewController
模型中逐个展示Queued
。一个接一个地重复呈现MFMailComposeViewController将不是一个好的用户体验。