2013-09-08 4 views
2

현재 항목 배열에서 임의로 항목을 선택하고 화면에 표시되는 iOS 앱이 있습니다. 나는 이미 "임의성"을 구축하고 응용 프로그램에 기능을 표시했지만 현재 응용 프로그램 내에서 화면에있는 배열에서 항목을 전자 메일로 보낼 수 있도록 설정하려고합니다. 예를 들어, 버튼을 누르면 1-10의 숫자가 무작위로 표시됩니다. 나는 숫자가 무작위로 화면에 표시되고, 이메일 본문은 화면에 번호가 미리 채워진 상태로 이메일로 보낼 수 있기를 바랍니다. 따라서 사용자는 숫자 "3"을 얻고 전자 메일 단추를 누르면 전자 메일 작성시 "3"이 이미 본문에 미리 채워집니다.iOS 앱에서 메일 구현하기

두 가지 문제가 있습니다. 우선 현재 코드에서 전자 메일 기능 코드를 구현하는 방법을 파악하고 있습니다. 이미 전자 메일 작성을 트리거하는 버튼이있는 테스터 응용 프로그램을 만들었고 본문에 일부 정적 텍스트를 채워서 코드 작동 방식에 대한 기본적인 이해를 얻었지만 어떻게해야할지 모르겠다. 이미 작성한 코드와 통합하십시오.

두 번째 문제는 메일 메시지 본문에 화면의 임의 번호가 미리 채워지는 것입니다. 여기에 첫 번째 문제를 들어

내 ViewController.h이 (I했습니다 이미 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 

앱 실행과 같은 모습입니다 좋아,하지만 내 이메일 코드를 어디서 구현해야할지 모르겠다. 또한 배열에서 무작위로 선택한 이메일 본문을 채울 방법을 확신하지 못합니다. 나는 참고 isHTML이있다가이 텍스트를

- (IBAction)buttonGo:(id)sender 

를 개최합니다 같은 작업을 할 수있는 장소입니다

NSString * sentFrom = @"text in email body"; 
    [myMail setMessageBody:sentFrom isHTML:YES]; 
+0

buttonGo의 목적은 무엇입니까? ur 코드에서, 버튼 클릭과 쉐이크 모션은 같은 일을합니다 .. – HRM

+0

예, "buttonGo"는 배열에서 임의의 항목을 생성하는 버튼입니다. "buttonGo"및 흔들기 기능은 동일한 것을 수행합니다. –

+0

이메일을 보내기위한 버튼이 있어야합니다. – HRM

답변

2

MessageUI의 비트와 함께 할 수있는 뭔가 및 두 번째 문제에 대한있을 것이다 가정입니다 당신의 텍스트가 그것을 사용하지 않는다면 NO로 설정한다.

MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init]; 

[mailController setSubject:@"randomNumber"];     
[mailController setMessageBody:self.ideaLabel.text isHTML:NO]; 
+0

그래서 현재 사용중인'(IBAction)'코드에서 모든 이메일 기능 코드를 구현할 예정입니까? 그리고 두 번째 부분에서는 기본적으로'mailController'에게 HTML을 표시하는 대신 'testArray'에서 데이터를 가져 오라고 말하고 있습니까? –

+0

그게 당신의 일을 시작한 것입니다. 당신 측에서는 원하는 코딩 구조로 메일 조작을 수행 할 수 있습니다. 기능을 분리하기 위해 메일 용도로 기능을 만드는 것이 좋습니다. 그리고 마침내 당신이 끝났다고 생각한다면. 그냥 대답으로 받아 들여라. – Hooda

+0

고마워, 현재 코드에서 전자 메일 코드를 구현하는 방법을 알아 냈지만 전자 본문에 내 Array의 데이터가 미리 채워지는 작업을 계속하고 있습니다. –