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