2013-04-25 69 views
0

在我的應用程序中,我使用PersonPicker視圖從地址框中獲取電子郵件ID。電子郵件對話框沒有在iPhone SDK中打開

當我選擇任何電子郵件ID時,我嘗試打開電子郵件對話框。但它會立即打開&。

我無法解決這個問題。

我得到了代碼Here

我的代碼如下:

-(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{ 

    // Get the first and the last name. Actually, copy their values using the person object and the appropriate 
    // properties into two string variables equivalently. 
    // Watch out the ABRecordCopyValue method below. Also, notice that we cast to NSString *. 
    NSString *firstName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty); 
    NSString *lastName = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty); 

    // Compose the full name. 
    NSString *fullName = @""; 
    // Before adding the first and the last name in the fullName string make sure that these values are filled in. 
    if (firstName != nil) { 
     fullName = [fullName stringByAppendingString:firstName]; 
    } 
    if (lastName != nil) { 
     fullName = [fullName stringByAppendingString:@" "]; 
     fullName = [fullName stringByAppendingString:lastName]; 
    } 


    // Get the multivalue e-mail property. 
    CFTypeRef multivalue = ABRecordCopyValue(person, property); 

    // Get the index of the selected e-mail. Remember that the e-mail multi-value property is being returned as an array. 
    CFIndex index = ABMultiValueGetIndexForIdentifier(multivalue, identifier); 

    // Copy the e-mail value into a string. 
    email = (NSString *)ABMultiValueCopyValueAtIndex(multivalue, index); 
    NSLog(@"%@",email); 
    // Create a temp array in which we'll add all the desired values. 
    NSMutableArray *tempArray = [[NSMutableArray alloc] init]; 
    [tempArray addObject:fullName]; 

    // Save the email into the tempArray array. 
    [tempArray addObject:email]; 


    // Now add the tempArray into the contactsArray. 
    [contactsArray addObject:tempArray]; 
    NSLog(@"%@",contactsArray); 
    // Release the tempArray. 
    [tempArray release]; 

    // Reload the table to display the new data. 
    [table reloadData]; 

    // Dismiss the contacts view controller. 
    [contacts dismissModalViewControllerAnimated:YES]; 
    [contacts release]; 


    MFMailComposeViewController* Apicker = [[MFMailComposeViewController alloc] init]; 
    if (Apicker != nil) 
    { 

     [Apicker setSubject:@""]; 
     NSString * someString = nil; 
     [email protected]"<a href=\"https://www.google.com\">Google</a>"; 
     [Apicker setMessageBody:someString isHTML:YES]; 

     NSArray *toRecipients = [NSArray arrayWithObjects:email, nil]; 
     [Apicker setToRecipients:toRecipients]; 

     Apicker.mailComposeDelegate = self; 
     [self presentModalViewController:Apicker animated:YES]; 
     [Apicker release]; 

    } 



    return NO; 
} 

我認爲這可能是解僱&目前的模式來看待這個問題。

回答

1

你的問題與解僱和禮物是兩者重疊。 - 解僱它,然後顯示它有點像你做的,但是你遇到問題是因爲東西是動畫的。不要在那裏動畫或延遲預設,直到解僱後

+0

感謝您的回覆!我做的和你完全一樣,但當用戶選擇任何電子郵件ID時,我想顯示郵件對話框。我怎樣才能做到這一點? – AtWork 2013-04-25 10:53:04

+0

完全改寫:D – 2013-04-25 10:57:02

+0

偉大的編碼......!哇,我不能相信這就像是愚蠢的錯誤。再次感謝! – AtWork 2013-04-25 11:01:01