我目前有一个iOS应用程序,其中一个项目是从一系列项目中随机选择的,并显示在屏幕上。我已经在应用程序中构建了“随机性”并显示功能,但我现在正在设置它,以便您可以从应用程序内的当前屏幕上的数组中通过电子邮件发送该项目。例如,您点击按钮并随机显示1-10的数字。我希望能够让用户通过电子邮件发送随机显示在屏幕上的任何数字,电子邮件正文中预先填充了屏幕上的数字。因此,用户获得数字“3”,点击电子邮件按钮,当电子邮件撰写出现时,“3”已经预先填充在正文中。
我有两个问题,首先是弄清楚如何在我当前的代码中实现电子邮件功能代码。我已经构建了一个测试器应用程序,它有一个触发电子邮件组合显示的按钮,并用一些静态文本填充正文,所以我对代码的工作方式有基本的了解,但我不知道如何将它与我已编写的代码集成。
我的第二个问题是使用屏幕上的随机数预先填充邮件正文。
这里的第一个问题是我的ViewController.h看起来像什么(我已经添加了MessageUI框架)
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController {
NSArray *testArray;
}
- (IBAction)buttonGo:(UIButton *)sender;
@property (strong, nonatomic) IBOutlet UILabel *testLabel;
@property (strong, nonatomic) NSArray *testArray;
- (void) makePrediction;
@end
我的ViewController.m看起来像
#import "ViewController.h"
#import <MessageUI/MessageUI.h>
@interface ViewController ()
@end
@implementation ViewController
@synthesize testArray;
@synthesize testLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
self.testArray = [[NSArray alloc] initWithObjects:@"number one",@"number `two",@'numberthree", nil];`
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)buttonGo:(id)sender {
NSUInteger index = arc4random_uniform(self.testArray.count);
self.testLabel.text = [self.testArray objectAtIndex:index];
}
- (void) makePrediction {
NSUInteger index = arc4random_uniform(self.
testArray.count);
self.testLabel.text = [self.testArray objectAtIndex:index];
}
- (BOOL) canBecomeFirstResponder {
return YES;
}
- (void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
self.testLabel.text = @"";
}
- (void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if ( motion == UIEventSubtypeMotionShake ){
[self makePrediction];
}
}
- (void) motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"motion cancelled");
}
@end
该应用运行正常,但我不确定在哪里实施我的电子邮件代码。我也不确定如何使用我的数组中的随机选择来填充我的电子邮件正文。我假设它将与MessageUI的这一点
有关NSString * sentFrom = @"text in email body";
[myMail setMessageBody:sentFrom isHTML:YES];
答案 0 :(得分:1)
这是您完成工作的地方,因为您将持有文本
- (IBAction)buttonGo:(id)sender
和第二期 注意,如果您的文本不使用它,则必须将HTML设置为NO。
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
[mailController setSubject:@"randomNumber"];
[mailController setMessageBody:self.ideaLabel.text isHTML:NO];