代码之家  ›  专栏  ›  技术社区  ›  srikanth rongali

如何在cocos2d中使用MFMailComposeViewController以横向模式显示mail composer?

  •  1
  • srikanth rongali  · 技术社区  · 14 年前

    所以,当我在场景中触摸到一个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  
    

    alt text http://www.freeimagehosting.net/uploads/4a77b9ceb9.png

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

    我们如何将“从我的iPhone发送”改为“从我的iPad发送”

    非常感谢。

    alt text http://www.freeimagehosting.net/uploads/3eb39ea1de.png

    3 回复  |  直到 14 年前
        1
  •  2
  •   marko    14 年前

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

    CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));
    
    [picker.view setTransform:landscapeTransform];
    
        2
  •  0
  •   KreÅ¡imir Prcela    14 年前

    您可以创建自己的mailcomposer,它是从MFMailComposeViewController派生的,并且只能覆盖函数shouldAutorotateToInterfaceorientation。 我没试过,只是给你个主意。

        3
  •  0
  •   Raj Pawan Gumdal    14 年前

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

    用途:

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

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