При записи данных в список данных какого типа будет электронная почта? - PullRequest
0 голосов
/ 11 сентября 2011

Я нахожусь в процессе использования plist для заполнения uitableview.Мне было интересно, потому что одним из моих ключей является электронная почта, какого типа это будет?Данные, строки и т. Д. Основная идея состоит в том, чтобы иметь таблицу, нажать на ячейку электронной почты и получить модальное представление электронной почты.Как мне это сделать?Спасибо

1 Ответ

0 голосов
/ 11 сентября 2011

Тип данных, который я бы использовал, был бы строкой.Затем вы можете извлечь эту строку и использовать ее там, где вам нужно.В случае электронной почты вам нужно будет сделать следующее (я предполагаю, что вы можете прочитать строку из plist и использовать ее в UITableViewCell):

#pragma mark -
#pragma mark Compose Mail

-(void)callMailComposer
{
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)
    {
        // We must always check whether the current device is configured for sending emails
        if ([mailClass canSendMail])
        {
            [self displayComposerSheet];
        }
        else
        {
            [self launchMailAppOnDevice];
        }
    }
    else
    {
        [self launchMailAppOnDevice];
    }
}

// Displays an email composition interface inside the application. Populates all the Mail fields. 
-(void)displayComposerSheet
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;
    [picker setSubject:@"My email subject"];

   //Just an extra example if you were wanting to add an attachment :)
   /* NSString* pdfFileName = @"pdf_file.pdf";
    NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
    NSString* documentDirectory = [documentDirectories objectAtIndex:0];
    NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:pdfFileName];

    [picker addAttachmentData:[NSData dataWithContentsOfFile:documentDirectoryFilename] mimeType:@"application/pdf" fileName:pdfFileName]; */

    // Set up recipients
    [picker setCcRecipients:nil];   
    [picker setBccRecipients:nil];
    [picker setToRecipients:[NSArray arrayWithObjects:@"myEmailAddressFromPlist",nil]];

    NSString *emailBody = @"Hey you got mail";
    [picker setMessageBody:emailBody isHTML:YES];

    [self presentModalViewController:picker animated:YES];

    [picker release];
     picker=nil;
}

// Dismisses the email composition interface when users tap Cancel or Send. Proceeds to update the message field with the result of the operation.
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{    
    NSString* alertMessage;
    // Notifies users about errors associated with the interface
    switch (result)
    {
        case MFMailComposeResultCancelled:
            alertMessage = @"Email composition cancelled";
        break;
        case MFMailComposeResultSaved:
            alertMessage = @"Your e-mail has been saved successfully";
        break;
        case MFMailComposeResultSent:
            alertMessage = @"Your email has been sent successfully";
        break;
        case MFMailComposeResultFailed:
            alertMessage = @"Failed to send email";
        break;
        default:
            alertMessage = @"Email Not Sent";
        break;
    }

    UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"My application" message:alertMessage delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
    [alertView release];

    [self dismissModalViewControllerAnimated:YES];
}

#pragma mark Workaround

// Launches the Mail application on the device.
-(void)launchMailAppOnDevice
{

//You will need to fill these in 
    NSString *recipients = @"mailto:?cc=&subject=";
    NSString *body = @"&body=";
    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
    email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...