UIAlertController 在 iOS 9 中不起作用
Posted
技术标签:
【中文标题】UIAlertController 在 iOS 9 中不起作用【英文标题】:UIAlertController not working in iOS 9 【发布时间】:2015-09-24 13:12:30 【问题描述】:我添加了显示登录和密码文本字段的 UIAlertController 代码,它适用于 ios 8,但在 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 上显示,但没有运气,相同的代码适用于 ios 8。项目很旧并且得到 iOS 5 的支持。任何帮助将不胜感激。谢谢。
【问题讨论】:
所以文本字段应该是垂直布局还是水平布局? 我刚试过你的代码。它工作正常。你在哪里调用这个方法 toggleLoginLdap ? 水平布局(下一个另一个),它也适用于我的新演示项目,但它不适用于我的旧项目(它是在以前版本的 xcode 中创建的)。 toggleLoginLdap 从另一个 viewController 调用。 请张贴方法,您在哪里调用它。也许你应该在主线程上调用它!!! 【参考方案1】:在呈现 alertController 后添加 [self.alertController.view layoutIfNeeded]
我遇到了同样的问题,它成功了
【讨论】:
【参考方案2】:我知道这个问题很老,但我已经研究了一天多。
我偶然发现了 Pixate freestyle github 中的一个线程。 我的问题是我们使用的是 Pixate Freestyle pod
如果你把你的代码放到一个干净的 Xcode 项目中,它看起来会很好。那里提到了一种解决方法;但它很快。我会尝试找到它并在我找到它时发布一个链接。
编辑:https://github.com/Pixate/pixate-freestyle-ios/issues/178
【讨论】:
以上是关于UIAlertController 在 iOS 9 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UIAlertView 和 UIAlertController