1

我正在用cocos2d編寫遊戲。我想將MFMailComposeViewController添加到場景中。 因此,當我在場景中觸摸CcLabel時,郵件表被打開。如何使用cocos2d中的MFMailComposeViewController以橫向模式顯示郵件編輯器?

@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:@"[email protected]"]; 
[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

+0

看起來這可能是Apple實施中的一個錯誤。你有沒有證實它在設備本身的方向錯誤? – 2010-07-08 23:18:51

+0

我也有這個問題..我使用cocos2d 99.5 ...... sp ...開始賞金... – Rony 2010-11-23 11:37:21

回答

2

您可以嘗試手動旋轉視圖...:

CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90)); 

[picker.view setTransform:landscapeTransform]; 
+0

如果我旋轉選取器它效果不錯...但是當我關閉picker.view。 .....通過按下關閉按鈕......我的原始場景轉換爲肖像模式...... – Rony 2010-11-23 11:44:22

+0

呃....試圖在添加相同的兩行之前(或之後,我不確定,嘗試什麼是最適合你的)[picker.view removeFromSuperview];但與degreesToRadian(0) – marko 2010-11-23 14:26:23

0

你可以使自己的mailcomposer是從MFMailComposeViewController衍生,你可以只覆蓋功能shouldAutorotateToInterfaceorientation。 我沒有試過這個,只是給你一個想法。

0

誰在管理您的EmailScene對象?如果您遵循了MVC模式,請嘗試使用EmailScene視圖的viewController呈現MFMailComposeViewController對象。如果您支持視圖控制器中的所有方向,這將工作。

用途:

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

,而不是添加MFMailComposeViewController的視圖作爲子視圖。

編輯:嘗試使用根視圖控制器呈現MFMailComposeViewController。

相關問題