gpt4 book ai didi

ipad - 并发 UIAlertControllers

转载 作者:行者123 更新时间:2023-12-03 20:51:19 29 4
gpt4 key购买 nike

我正在将我的应用程序移植到 iOS 8.0 并注意到 UIAlertView 已被弃用。

所以我改变了使用 UIAlertController 的方法。这在大多数情况下都有效。

除了,当我的应用程序打开时,它会进行多次检查以向用户报告各种状态......

例如...“警告,你还没有设置 X,需要在完成项目之前做 Y”和“警告,你使用的是测试版,不要依赖结果”等等......(这些只是例子!)

在 UIAlertView 下,我会(比如说)同时获得两个警告框,用户必须点击两次才能关闭这两个警告框……但它们都出现了。

在带有以下代码的 UIAlertController 下显示“一般”警报,我只收到一条警报消息和一条控制台消息:

警告:尝试在 TestViewController 上呈现 UIAlertController: 0x13f667bb0: 0x13f63cb40 已经呈现 UIAlertController: 0x13f54edf0

因此,虽然上述可能不是一个很好的例子,但我认为有时可能会由于操作应用程序时的“事件”而需要呈现多个全局警报。在旧的 UIAlertView 下,它们会出现,但似乎它们不会在 UIAlertController 下出现。

谁能建议如何使用 UIAlertController 实现这一点?

谢谢

+(void)presentAlert:(NSString*)alertMessage withTitle:(NSString*)title
{
UIAlertController *alertView = [UIAlertController
alertControllerWithTitle:title
message:alertMessage
preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* ok = [UIAlertAction
actionWithTitle:kOkButtonTitle
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
//Do some thing here
[alertView dismissViewControllerAnimated:YES completion:nil];
}];

[alertView addAction:ok];

UIViewController *rootViewController = [[[UIApplication sharedApplication] delegate] window].rootViewController;
[rootViewController presentViewController:alertView animated:YES completion:nil];

编辑:我注意到在 iOS8 上,连续呈现两个 AlertViews,它们被“排队”并顺序出现,而在 iOS7 中,它们同时出现。似乎 Apple 已更改 UIAlertView 以对多个实例进行排队。有没有办法在不继续使用(已弃用但已修改)的 UIAlertView 的情况下使用 UIAlertController 做到这一点???

最佳答案

在呈现 UIAlertController 时,我也面临一些问题。
现在我可以建议的唯一解决方案是从最顶层的presentedViewContrller(如果有)或窗口的rootViewController 显示警报 Controller 。

UIViewController *presentingViewController = [[[UIApplication sharedApplication] delegate] window].rootViewController;

while(presentingViewController.presentedViewController != nil)
{
presentingViewController = presentingViewController.presentedViewController;
}

[presentingViewController presentViewController:alertView animated:YES completion:nil];

您收到的警告不仅限于 UIAlertController。 View Controller (在您的情况下是窗口的 rootViewController)一次只能显示一个 View Controller 。

关于ipad - 并发 UIAlertControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25932589/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com