presentModalViewController: средство выбора не работает в iPad MFMailComposeViewController - PullRequest
1 голос
/ 05 июля 2010

Я использую следующий код для листа составителя почты в приложении iPad.Я использовал тот же код для iPhone.Это сработало.
Я пишу игру на iPad, используя cocos2d.Игра в режиме LandScape.Элемент управления в EmailScene останавливается на [picker presentModalViewController: picker animated: YES];Это не дает никакой ошибки.Должен ли я изменить свой код для iPad?

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

-(void)displayComposerSheet;

@end

@implementation EmailScene

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

// Displays an email composition interface inside the application. Populates all the Mail fields.
-(void)displayComposerSheet
{

    [[CCDirector sharedDirector] pause];

    picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    //Fill in the email as you see fit
    NSArray *toRecipients = [NSArray arrayWithObject:@"srikanth.rongali786@gmail.com"]; 
    [picker setToRecipients:toRecipients];

    //display the view
    [[[CCDirector sharedDirector] openGLView] addSubview:picker.view];
    [[CCDirector sharedDirector] stopAnimation];  

//When I commented the following two lines the mail page is opening.
    //[picker presentModalViewController:picker animated:YES];

    //[picker release];

}  

Но проблема в том, что моя игра находится в альбомном режиме, а почтовый лист отображается в портретном режиме.Спасибо.

1 Ответ

0 голосов
/ 05 июля 2010

Вы используете -presentModalViewController:… неправильно. Этот метод должен вызываться на самом верхнем контроллере вида перед тем, как будет представлен «сборщик».

[topmostViewController presentModalViewController:picker animated:YES];

(Вы также не должны добавлять picker.view как подпредставление -openGLView.)

...