Как запустить электронную почту / смс в альбомном приложении iPhone? - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть приложение для iPhone, которое работает только в ландшафтном режиме, но недавно я хотел добавить функции mail / sms / facebook (через действия UIButton).Последний работает без сбоев, я запускаю веб-браузер (сам управляет портретным режимом), но запуск компоновщика почты или смс сводит меня с ума.Я просто хочу использовать это приложение только в альбомном режиме, исключая запуск mail / sms / fb (на самом деле браузер).

Мне удалось создать композитор mail / sms в портретном режиме, когда экран приложения в альбомной ориентации, но клавиатуратакже появляется в альбомной ориентации, которая блокирует левую / правую половину композитора - сделал это с [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

, либо я читаю плохие вещи на эту тему, либо я просто слепой;) - в любом случае, любойнужна помощь, спасибо

РЕДАКТИРОВАТЬ:

У меня есть корневой ViewController с переопределением:

- (BOOL)shouldAutorotateToInterfaceOrientation

, который возвращает YES в обоих режимах ландшафта.Этот rootVC запускает ShareVC, который имеет 3 кнопки для mail / sms / fb.Я хочу добиться чего-то вроде запуска веб-браузера, который начинается в портретном режиме.То же самое с почтой и смс, но с использованием модальных контроллеров представления и последующим возвратом в ShareVC после отправки почты / смс ...Я также устанавливаю ориентации в plist для режимов ландшафта.Надеюсь, это уточнить, что я пытаюсь сделать:)

Ответы [ 2 ]

0 голосов
/ 03 апреля 2012

Проблема исправлена ​​:) оказалось, что я вызываю present / dismiss modalViewController для childVC, а не для самого rootVC, вот фрагмент кода:

-(IBAction)goMail{
    NSLog(@"gomail...");
    MFMailComposeViewController *picker = [[[MFMailComposeViewController alloc] init] autorelease];
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];

    if ([MFMailComposeViewController canSendMail]) {
        picker.mailComposeDelegate = self;
        [picker setSubject:@"Hello iPhone!"];

        // Set up recipients
        NSArray *toRecipients = [NSArray arrayWithObject:@"aa@bb.com"];
        [picker setToRecipients:toRecipients];
        [picker setMessageBody:@"mail content..." isHTML:NO];
        [self.controller presentModalViewController:picker animated:YES];
        //[picker release];
    }
}
0 голосов
/ 02 апреля 2012

Попробуйте добавить это в нужный ViewController:

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

У меня нет Mac поблизости, поэтому могут быть ошибки.

надеюсь, это поможет

...