На стартовой странице моего приложения установлен на портрет только с этим немного коды:Предотвращение AlertView от автоматического вращающегося
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait ;
}
Когда приложение запускает UIAlertView
появляется имя пользователя и пароль входа. Способ отображения: от viewWillAppear
.
Это работало отлично для iOS6 но так iOS7, если переключить устройство на альбомную, основной вид остается в портретном, но тревога вид клавиатуры и повернуть на альбомную. Еще странно причуда, что, когда я переключаюсь обратно к портрету, только клавиатура переключается обратно (в урезанном виде), в результате чего предупреждения заморожен в ландшафтном режиме:
Может кто-нибудь сказать мне, как это предотвратить ?
-EDIT-
Код автоповорота называется в отдельную категорию:
@implementation UINavigationController (Orientation)
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
-(BOOL)shouldAutorotate
{
if (UIInterfaceOrientationIsLandscape([[UIDevice currentDevice] orientation])) return NO;
else return YES;
}
@end
-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];
}
Вы говорите «когда приложение запускается». Когда это точно? В каком методе вы называете 'alertWithMessage:'? –
Он вызывается из 'viewWillAppear'. Я уточню вопрос. – Robert
Попробуйте сделать это в 'viewDidAppear:'. Не уверен, что это будет иметь значение, но я уже видел эту странность. –