Проблема ориентации устройства Ipad - PullRequest
1 голос
/ 30 сентября 2010

Я представляю MFMailComposeViewController (mailController), используя presentModalViewController, в моем UIViewController, в mailController (подкласс класса MFMailComposeViewController), который у меня есть overideide shouldAutorotateToInterfaceOrientation, как

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

Но в моем классе UIViewController у меня есть overhide shouldAutorotateToInterfaceOrientation as (это необходимо для моего проекта)

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

После представления моего почтового контроллера, если я поворачиваю устройство, оно отлично работает, как и ожидалось (поддерживает альбомную / правую ориентацию) в iPhone ... Но тот же код не работает в iPad. Я делаю какую-то ошибку здесь? это ошибка Apple?

Я представляю, используя этот API [myViewController presentModalViewController:mailController animated:YES];

и я получаю это предупреждение как на iPhone, так и на iPad. Контроллер представления <UINavigationController: 0x7720920> returned NO from -shouldAutorotateToInterfaceOrientation: for all interface orientations. It should support at least one orientation.

Спасибо

Ответы [ 3 ]

5 голосов
/ 30 сентября 2010

То, что вы на самом деле говорите: «Я не поддерживаю ЛЮБОЙ ориентации», что, конечно, ... не соответствует действительности.

Вы должны вернуть true хотя бы для одной ориентации. Например:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
   return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
0 голосов
/ 02 декабря 2011
MFMailComposeViewController *picker=[[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:self.title];
[picker setMessageBody:body isHTML:YES];
[picker shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft];
[picker shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight];
[picker shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortrait];
[picker shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationPortraitUpsideDown];
[self  presentModalViewController:picker animated:YES];

Это должно исправить это ...

0 голосов
/ 30 сентября 2010

Этот метод допускает обе альбомные ориентации:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...