Verhindert, dass sich AlertView automatisch dreht

Die Startseite meiner App ist auf eingestelltPorträt nur mit diesem kleinen Code:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait ;
}

Wenn die App startet aUIAlertView erscheint zur Eingabe von Benutzername und Passwort. Die Methode zum Anzeigen wird von aufgerufenviewWillAppear.

Das hat gut funktioniertiOS6 aber seitiOS7Wenn ich das Gerät auf Querformat umstelle, bleibt die Hauptansicht im Hochformat, die Warnansicht und die Tastatur werden jedoch in Querformat gedreht. Eine weitere bizarre Eigenheit ist, dass beim Zurückschalten zum Hochformat nur die Tastatur zurückschaltet (in abgeschnittener Form) und die Warnung im Querformat eingefroren bleibt:

Kann mir jemand sagen, wie ich das verhindern kann?

-BEARBEITEN-

Der Autorotationscode wird in einer separaten Kategorie aufgerufen:

@implementation UINavigationController (Orientation)

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

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

@Ende

-EDIT 2-

Ich habe auch versucht, eine Kategorie zu erstellenUIAlertView aber es heißt nie:

@implementation UIAlertView (Orientation)

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

-(BOOL)shouldAutorotate
{
    return NO;
}

-EDIT 3-

Ich bin mir nicht sicher, wie relevant dies ist, aber hier ist der Code zum Anzeigen der Warnung:

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage