Evitar que o AlertView rode automaticamente

A página de lançamento do meu aplicativo está definida pararetrato apenas com este pequeno código:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait ;
}

Quando o aplicativo inicia umUIAlertView aparece para entrada de nome de usuário e senha. O método para exibi-lo é chamado deviewWillAppear.

Isso funcionou bem paraiOS6 mas desdeiOS7, se eu alternar o dispositivo para paisagem, a visualização principal permanecerá no modo retrato, mas a visualização de alerta e o teclado girarão para a paisagem. Outra peculiaridade bizarra é que, quando eu volto ao retrato, apenas o teclado retorna (na forma truncada), deixando o alerta congelado no modo paisagem:

Alguém pode me dizer como evitar isso?

-EDITAR-

O código de autorotate é chamado em uma categoria separada:

@implementation UINavigationController (Orientation)

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

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

@fim

-EDIT 2-

Eu também tentei criar uma categoria emUIAlertView mas nunca é chamado:

@implementation UIAlertView (Orientation)

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
    return NO;
}

-EDIT 3-

Não tenho certeza de como isso é relevante, mas aqui está o código para mostrar o alerta:

- (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];
}

questionAnswers(3)

yourAnswerToTheQuestion