メール用アプリで MFMailComposeViewController を提示しています。しかし、ビューは表示されず、上部の SEND および CANCEL ボタンのみが表示されます。
これは、[Email to Subscribe] ボタンをクリックした後に表示されるビューのスクリーン ショットです。
関連するすべてのコードをチェックアウトしました。「MessageUI」フレームワークを追加してインポートしました
MessageUI/MessageUI.h , MessageUI/MFMailComposeViewController.h
次のコードを使用しました:
- (void)viewWillAppear:(BOOL)animated {
[self.view setFrame:CGRectMake(0, 62, 320, 418)];
[APPDELEGATE.window addSubview:self.view];
[self.navigationController.navigationBar setHidden:NO];
self.navigationItem.title=@"Free Subscription";
[super viewWillAppear:animated]; }
-(void)viewWillDisappear:(BOOL)animated {
[self.view removeFromSuperview];
[super viewWillDisappear:animated]; }
-(IBAction)btnEmailPressed {
MFMailComposeViewController* Apicker = [[MFMailComposeViewController alloc] init];
if (Apicker != nil)
{
[Apicker setSubject:@"Free Subscription"];
[Apicker setMessageBody:@" " isHTML:NO];
NSArray *toRecipients = [NSArray arrayWithObjects:@"info@xyz.com", nil];
[Apicker setToRecipients:toRecipients];
Apicker.mailComposeDelegate = self;
if([MFMailComposeViewController canSendMail])
{
[self presentModalViewController:Apicker animated:YES];
}
else
{
}
[Apicker release];
} }
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError
*)error{
NSString *message;
switch (result) {
case MFMailComposeResultCancelled:
message =@"You have canceled your email.";
break;
case MFMailComposeResultFailed:
message=@"Your email is failed";
break;
case MFMailComposeResultSent:
message=@"Your email was successfully sent.";
break;
case MFMailComposeResultSaved:
message=@" Your email has been saved";
break;
default:
message=@" Your email is not send";
break;
}
UIAlertView *alt=[[UIAlertView alloc]initWithTitle:@"" message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alt show];
[alt release];
[self dismissModalViewControllerAnimated:YES];
}
この問題の理由がわかりませんでした。
ありがとう。