1

我正在用 cocos2d 编写游戏。我想将 MFMailComposeViewController 添加到场景中。因此,当我在场景中触摸 CcLabel 时,会打开邮件表。

@interface EmailScene : CCScene <MFMailComposeViewControllerDelegate>
{
    MFMailComposeViewController *picker;
}

-(void)displayComposerSheet;

@end

@implementation EmailScene

- (id) init {

    self = [super init];
    if (self != nil) {
        [self displayComposerSheet];
    }
    return self;
}
-(void)displayComposerSheet
{

    [[CCDirector sharedDirector] pause];
    picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    NSArray *toRecipients = [NSArray arrayWithObject:@"srikanth.rongali786@gmail.com"]; 
[picker setToRecipients:toRecipients];

    [[[CCDirector sharedDirector] openGLView] addSubview:picker.view];
    [[CCDirector sharedDirector] stopAnimation];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    [[CCDirector sharedDirector] resume];
    CCScene *Scene = [CCScene node];
    CCLayer *Layer = [GameWinScreen node];
    [Scene addChild:Layer];

    [picker.view removeFromSuperview];
    [[CCDirector sharedDirector] startAnimation];
    [picker dismissModalViewControllerAnimated:YES];
    [[CCDirector sharedDirector] replaceScene:Scene];
}

@end  

替代文字 http://www.freeimagehosting.net/uploads/4a77b9ceb9.png

但是,问题是我的游戏处于横向模式。所以,我需要邮件表以横向模式显示。但是,这里的邮件表以纵向模式显示。并且键盘以横向模式出现。但是,邮件镇静表处于纵向模式。

以及如何将“从我的 iPhone 发送”更改为“从我的 iPad 发送”

谢谢你。

替代文字 http://www.freeimagehosting.net/uploads/3eb39ea1de.png

4

3 回答 3

2

您可以尝试手动旋转视图...:

CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));

[picker.view setTransform:landscapeTransform];
于 2010-11-23T09:31:51.543 回答
0

您可以制作自己的从 MFMailComposeViewController 派生的邮件撰写器,并且您只能覆盖函数 shouldAutorotateToInterfaceorientation。我没试过,只是给你一个想法。

于 2010-11-25T14:47:44.283 回答
0

谁在管理您的 EmailScene 对象?如果您遵循 MVC 模式,请尝试使用 EmailScene 视图的 viewController 呈现 MFMailComposeViewController 对象。如果您支持视图控制器中的所有方向,这将起作用。

利用:

-(void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated

而不是将 MFMailComposeViewController 的视图添加为子视图。

编辑:尝试使用根视图控制器呈现 MFMailComposeViewController。

于 2010-11-29T05:43:11.770 回答