2015-09-24 4 views
5

Я добавил код UIAlertController, отображающий текстовые поля ввода и пароля, он работает для iOS 8, но в iOS 9 не работает. В текстовые поля сжимается, как показано на рисунке ниже enter image description hereUIAlertController не работает в iOS 9

код Я пытаюсь выглядит следующим образом:

- (void)toggleLoginLdap:(UIViewController *)currentVC 
{ 

if ([UIAlertController class]) 
     { 


      self.alertController= [UIAlertController 
             alertControllerWithTitle:@"Title of Msg" 
             message:@"Hello" 
             preferredStyle:UIAlertControllerStyleAlert]; 

      UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault 
                 handler:^(UIAlertAction * action){ 
                  NSString *userName = self.alertController.textFields[0].text; 
                  NSString *password = self.alertController.textFields[1].text; 



                 }]; 
      UIAlertAction* cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel 
                  handler:^(UIAlertAction * action) { 


                   [self.alertController dismissViewControllerAnimated:YES completion:nil]; 

                  }]; 


      [self.alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
       textField.placeholder = @"Username/Email"; 
       //textField.preservesSuperviewLayoutMargins = YES; 
       textField.autoresizesSubviews = YES; 
      }]; 
      [self.alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
       textField.placeholder = @"Password"; 
       textField.secureTextEntry = YES; 
      }]; 
      //alertController.view.autoresizesSubviews = YES; 
      [self.alertController addAction:ok]; 
      [self.alertController addAction:cancel]; 
      [currentVC presentViewController:self.alertController animated:YES completion:nil]; 
} 

также попытался показать на RootViewController, но не повезло, тот же код не работает на КСН 8. Проект является старым и с поддержкой iOS 5. Любая помощь будет оценена по достоинству. Благодарю.

+0

поэтому текстовые поля должны быть в вертикальном или горизонтальном макете компоновки? –

+1

Я просто попробовал свой код. Он работает нормально. где вы вызываете этот метод toggleLoginLdap? –

+0

Горизонтальная компоновка (одна из них ниже), и она также работает для меня в новом демонстрационном проекте, но не работает в моем старом проекте (который создается в предыдущей версии xcode). –

ответ

1

добавить [self.alertController.view layoutIfNeeded] после представления alertController У меня была такая же проблема, и она работала

+1

Не работает для меня. –

0

Я знаю, этот вопрос старый, но я исследовал это в течение более суток.

Я наткнулся на нить в фетиш-гитаре. Моя проблема заключалась в том, что мы использовали Pixate Freestyle pod

Если вы возьмете свой код и поместите его в чистый проект Xcode, он будет выглядеть нормально. Там было обходное решение; но это быстро. Я попытаюсь найти его и опубликовать ссылку, когда я это сделаю.

РЕДАКТИРОВАТЬ: https://github.com/Pixate/pixate-freestyle-ios/issues/178

Смежные вопросы