iOS URLSchemeでメールを送る時、送信ボタンが無効になってしまう
MailNowというアプリを作っているのですが、iOS8.2から突然が不具合が発生しました。
いろいろ試行錯誤してみたのですが、手詰まりになってしまったので助けていただけませんか。
*やりたいこと
TableViewのセルをタップすると、plistに格納されたメールアドレス、タイトル、本文情報を読み込んで、URL scheme経由でiPhoneのメーラーに渡す
*症状
メーラーが起動していないときはうまくいく(送信ボタンが有効になる)が、メーラーを1度起動すると送信ボタンが無効になってしまう。メーラーを終了すれば、送信ボタンが再び有効になる
URL scheme起動時のコードは下記のとおりです。
問題解決のヒントを頂けたら幸いです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSDictionary *ContentDetail = [_defaultList objectAtIndex:indexPath.row];
NSString *email = ContentDetail[@"email"];
NSString *subject = ContentDetail[@"subject"];
NSString *message = ContentDetail[@"message"];
//UTF-8でエンコード
NSString*encEmail =
[email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString*encSubject =
[subject stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString*encText =
[message stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *scheme;
if (![subject isEqualToString:@""] && ![message isEqualToString:@""]) {
scheme = [NSString stringWithFormat:@"mailto:%@?subject=%@&body=%@",encEmail,encSubject,encText];
} else if (![subject isEqualToString:@""]) {
scheme = [NSString stringWithFormat:@"mailto:%@?subject=%@",encEmail,encSubject];
} else if (![message isEqualToString:@""]) {
scheme = [NSString stringWithFormat:@"mailto:%@?body=%@",encEmail,encText];
} else {
scheme = [NSString stringWithFormat:@"mailto:%@", encEmail];
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:scheme]];
}