Запрет AlertView от автоматического поворота

Страница запуска моего приложения настроена напортрет только с этим небольшим количеством кода:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait ;
}

Когда приложение запускаетUIAlertView появляется для ввода имени пользователя и пароля. Метод для его отображения вызывается изviewWillAppear.

Это работало нормально дляiOS6 но с тех порIOS 7, если я переключаю устройство в альбомную ориентацию, основной вид остается в портретной ориентации, но вид предупреждения и клавиатура поворачиваются в альбомную ориентацию. Еще одна странная странность заключается в том, что когда я переключаюсь обратно в портретный режим, только клавиатура переключается обратно (в усеченном виде), оставляя предупреждение замороженным в ландшафтном режиме:

Может кто-нибудь сказать мне, как это предотвратить?

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

Код автоповорота вызывается в отдельной категории:

@implementation UINavigationController (Orientation)

-(NSUInteger)supportedInterfaceOrientations
{
    return [self.topViewController supportedInterfaceOrientations];
}

-(BOOL)shouldAutorotate
{
    if (UIInterfaceOrientationIsLandscape([[UIDevice currentDevice] orientation])) return NO;
    else return YES;
}

@конец

-EDIT 2-

Я также пытался создать категорию наUIAlertView но это никогда не называется

@implementation UIAlertView (Orientation)

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
    return NO;
}

-EDIT 3-

Я не уверен, насколько это актуально, но вот код для отображения предупреждения:

- (void)alertWithMessage:(NSString *)theMessage
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login"
                                                    message:theMessage
                                                   delegate:self
                                          cancelButtonTitle:@"Login"
                                          otherButtonTitles: nil];

    [alert setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];
    UITextField *nameField = [alert textFieldAtIndex:0];
    [alert show];
}

Ответы на вопрос(3)

Ваш ответ на вопрос