【问题标题】:How to stop a ViewController如何停止 ViewController
【发布时间】:2013-01-28 07:07:46
【问题描述】:

我有一个可以通过 URI 方案从 Web 启动的应用程序,我已经在我的应用程序中注册了该应用程序。根据 URI,我打开不同的视图控制器(通过在 AppDelegate 中设置 rootViewController)。每个视图控制器在初始化时从服务器异步获取一些初始化数据。

我的问题是:如果我的服务器响应缓慢,我退出应用程序并再次进入应用程序(导致新的视图控制器打开),那么第一个视图控制器仍然存在于后台并接收服务器响应它发送的请求。这可能会导致第一个视图控制器显示警报,即使该视图控制器不再是焦点。

可以通过在 viewDidDisappear: 方法中设置一个标志来解决这个问题。但是这种处理会弄乱代码,如果我能以某种方式从 AppDelegate 中停止视图控制器会更好。或者至少确保它仅在前台显示警报视图。有没有办法做这些事情之一?

【问题讨论】:

  • 我发现可以检查视图控制器是否在前台。关于如何停止视图控制器的建议仍然非常受欢迎!

标签: objective-c ios5 uiviewcontroller


【解决方案1】:

我在另一个SO question找到了可能的解决方案

 if (viewController.isViewLoaded && viewController.view.window) {
    // present alert view
 }

这避免了标志,但它仍然需要分散在显示警报视图的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2016-07-27
    相关资源
    最近更新 更多