【问题标题】:UIAlertView inside an NSOperation is not modal in iPhoneNSOperation 中的 UIAlertView 在 iPhone 中不是模态的
【发布时间】:2009-03-26 12:12:23
【问题描述】:

所以我正在尝试创建一个尝试连接到 WWW 的检查。当它失败时,它需要在应用程序放弃并退出之前重试几次。每次重试时,用户都会使用带有重试或取消选项的 UIAlertView 进行提示。

这就是问题所在。

我在 NSOperationQueue 中有一系列操作,所有操作都应该失败且没有连接。我正在使用 NSoperation 队列,以便 UI 不会锁定并且数据正在后台处理。

在 NSInvocationOperation 中,我的方法会点击 [AlertView show],但这并不是真正的模态。

然后我的操作返回并继续通过 NSOperations 链,因为似乎没有办法用错误值返回它们以停止额外的处理。最终 UI 赶上来,显示 Modal AlertView,但我不知道发生了什么。

我确信这是一个常见的要求。任何想法如何实现这一目标?

【问题讨论】:

    标签: iphone objective-c multithreading user-interface


    【解决方案1】:

    如果我理解正确,您想要 UIAlertView 的模态版本,但只需要调用线程/NSOperation 中的模态版本?有几个问题:

    • 您可能应该只从主线程调用接口操作(使用 performSelectorOnMainThread 很容易解决:)
    • 模态对话框并不是操作系统的一部分;您需要以编程方式解决此问题。

    【讨论】:

    • 天才!使用以下并完美解决了问题! [NoConnectionAlertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES]; while (!Dismissed) { [NSThread sleepForTimeInterval:1]; }
    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多