3
- (void) showMail
{
    [[CCDirector sharedDirector] pause];
    NSString*myemail=@"sirano0629@me.com";
    NSArray*email=[[NSArray alloc]initWithObjects:myemail, nil];
    if([MFMailComposeViewController canSendMail])
    {
        mail = [[MFMailComposeViewController alloc] init];
        [mail setSubject:[NSString stringWithFormat:@"건의 및 문의"]];
        [mail setToRecipients:email];
        [self presentModalViewController:mail animated:YES];
        [mail release];
    }
}



- (void)mailComposeController:(MFMailComposeViewController *)controller                   didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    [mail dismissModalViewControllerAnimated:YES];
    mail.view.hidden=YES;
    [[CCDirector sharedDirector] resume];
    //return to previous scene
    [[CCDirector sharedDirector] replaceScene:[HelloWorldLayer scene]];
}

アプリ内の電子メール統合のための私のコードは次のとおりです。最初にメールビューを開くことは成功しましたが、送信またはキャンセルを押した後、ビューが消えません...

投げに行くのを手伝ってくれませんか...

@class SingletonClass;

@interface GameCenterView : UIViewController     <GKLeaderboardViewControllerDelegate,MFMailComposeViewControllerDelegate>
{
SingletonClass * singleCurrentAverage;
MFMailComposeViewController*mail;
NSInteger score;
}


-(void)showLeaderboard;
-(void)showTweetForUnder;
-(void)showTweetForPost;
-(void)showMail;
@end

私が使っているヘッダファイル

#import "GameCenterView.h"
#import "GameCenterUtil.h"
#import "HelloWorldLayer.h"
#import "SingletonClass.h"
#import "AppDelegate.h"
#import <MessageUI/MessageUI.h>

@interface GameCenterView ()

@end

@implementation GameCenterView


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    if ([GameCenterUtil isGameCenterAPIAvailable]) {
        [GameCenterUtil authenticateLocalPlayer];
    }else {
        NSLog(@"this device do not support GameCenter");
    }

}
return self;
}
-(void)showLeaderboard
{
self.view.hidden=NO;

GKLeaderboardViewController * leaderboardController = [[[GKLeaderboardViewController alloc]init]autorelease];
if (leaderboardController!=nil) {
    leaderboardController.leaderboardDelegate=self;

    [self presentModalViewController:leaderboardController animated:YES];

}
}
-(void)showTweetForUnder
{
singleCurrentAverage=[SingletonClass sharedGameStateInstance];
score=[singleCurrentAverage currentAverage];
if([TWTweetComposeViewController canSendTweet]) {
    TWTweetComposeViewController*tweet=[[TWTweetComposeViewController alloc]init];
    [tweet setInitialText:[NSString stringWithFormat:@"대학교 점수 :%d from 성적UP iOS. \n 친구들에게 하고싶은 말을 적으세요.",score]];
    NSURL*url=[NSURL URLWithString:@"http://www.facebook.com/avoidpoo"];
    [tweet addURL:url];
    UIImage *image=[UIImage imageNamed:@"Icon-72.png"];
    [tweet addImage:image];
    [self presentModalViewController:tweet animated:YES];
} 
}

-(void)showTweetForPost
{
singleCurrentAverage=[SingletonClass sharedGameStateInstance];
score=[singleCurrentAverage currentAverage];
if ([TWTweetComposeViewController canSendTweet]) {
    TWTweetComposeViewController*tweet=[[TWTweetComposeViewController alloc]init];
    [tweet setInitialText:[NSString stringWithFormat:@"대학원 점수: %d from 성적Up iOS. \n 친구들에게 하고 싶은 말을 적으세요.",score]];
    NSURL*url=[NSURL URLWithString:@"http://www.facebook.com/avoidpoo"];
    [tweet addURL:url];
    UIImage *image=[UIImage imageNamed:@"Icon-72.png"];
    [tweet addImage:image];
    [self presentModalViewController:tweet animated:YES];

}
}
- (void) showMail
{
mail.mailComposeDelegate=self;
NSString*myemail=@"sirano0629@me.com";
NSArray*email=[[NSArray alloc]initWithObjects:myemail, nil];
if([MFMailComposeViewController canSendMail]) {
    mail = [[MFMailComposeViewController alloc] init];
    [mail setSubject:[NSString stringWithFormat:@"건의 및 문의"]];
    [mail setToRecipients:email];
    [self presentModalViewController:mail animated:YES];
    [mail release];
}
} // From Here You can Dismisses the email composition interface when users tap Cancel or Send. 
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{   
// Notifies users about errors associated with the interface
switch (result)
 {
    case MFMailComposeResultCancelled:
        NSLog (@"Result: canceled");
        break;
    case MFMailComposeResultSaved:
        NSLog (@"Result: saved");
        break;
    case MFMailComposeResultSent:
        NSLog (@"Result: sent");
        break;
    case MFMailComposeResultFailed:
        NSLog (@"Result: failed");
        break;
    default:
        NSLog (@"Result: not sent");
        break;
}
[self dismissModalViewControllerAnimated:YES];
}
-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
[self dismissModalViewControllerAnimated:YES];

self.view.hidden =YES;

}


-  (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

これは私の実装ファイルです

4

1 に答える 1