从uitableview填充电子邮件正文的最佳方法

时间:2011-11-13 03:03:25

标签: xcode uitableview core-data mfmailcomposeviewcontroller

好的,让我试着把它变成一个更好的问题。

我的应用程序中有一个tableViewController,其中包含一些用户希望通过tableview通过电子邮件向某人发送电子邮件的信息。

我可以保留一个包含该信息的数组。

问题的难点部分是如何使用objective-c语言使用tableview中的数据填充消息正文?

我是否必须制作一个包含所有html代码的大字符串?或者有更好/更简单的方法吗?即使它只是一个简单的表格,客户也会将其发送给某人。

我想任何解决方案/建议对我来说都是一个很好的途径,我应该知道如何使用它。

1 个答案:

答案 0 :(得分:5)

我吓坏了! 如果你们想要撰写一封包含UITableViewController数据的电子邮件 这是我如何做到的。只需记住导入数据头文件......

#import Recipe.h //in the implementation file
#import Ingredients.h //in the implementation file
#import <MessageUI/MFMailComposeViewController.h> // this line gotta be in the header file

-(IBAction)sendmail{
MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init];
[composer setMailComposeDelegate:self];
NSString *recipeTitle = @"<h5>Recipe name: ";
recipeTitle = [recipeTitle stringByAppendingFormat:recipe.name];
recipeTitle = [recipeTitle stringByAppendingFormat:@"</h5>"];

NSString *ingredientAmount = @"";
NSString *ingredientAisle = @"";
NSString *ingredientTitle = @"";

NSString *tableFirstLine = @"<table width='300' border='1'><tr><td>Ingredient</td><td>Amount</td><td>Aisle</td></tr>";
NSString *increments = @"";
increments = [increments stringByAppendingFormat:recipeTitle];
increments = [increments stringByAppendingFormat:tableFirstLine];
int i;

for (i=0; i < [ingredients count]; i++) {
    Ingredient *ingredient = [ingredients objectAtIndex:i];
    ingredientTitle = ingredient.name;
    ingredientAmount = ingredient.amount;
    ingredientAisle = ingredient.aisle;

    increments = [increments stringByAppendingFormat:@"<tr><td>"];
    increments = [increments stringByAppendingFormat:ingredientTitle];
    increments = [increments stringByAppendingFormat:@"</td><td>"];
    increments = [increments stringByAppendingFormat:ingredientAmount];
    increments = [increments stringByAppendingFormat:@"</td><td>"];
    increments = [increments stringByAppendingFormat:ingredientAisle];
    increments = [increments stringByAppendingFormat:@"</td></tr>"];
    if (i == [ingredients count]) {
        //IF THIS IS THE LAST INGREDIENT, CLOSE THE TABLE
        increments = [increments stringByAppendingFormat:@"</table>"];
    }
}

NSLog(@"CODE:: %@", increments);

if ([MFMailComposeViewController canSendMail]) {
    [composer setToRecipients:[NSArray arrayWithObjects:@"123@abc.com", nil]];
    [composer setSubject:@"subject here"];
    [composer setMessageBody:increments isHTML:YES];
    [composer setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:composer animated:YES];
    [composer release];
}else {
    [composer release];
    }
}

这对我来说是一个巨大的进步,如果你想在你的应用程序中创建有趣的(基本)工具,它实际上非常有用。 感谢Objective-c程序员这个典型网站中的每个人。

这是你得到的结果。简单但是开始的好方法。

enter image description here