代码之家  ›  专栏  ›  技术社区  ›  Jim Rhoades

关闭或销毁所有视图控制器、操作表等?

  •  1
  • Jim Rhoades  · 技术社区  · 15 年前

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    

    如果在该方法中导入数据之后,我可以使用popToRootViewController返回rootViewController向用户显示新数据,那就太好了。

    但是,如果用户在模式视图控制器或操作表启动时导入了数据(popToRootViewController不会取消这些操作,并导致应用程序冻结),则此操作不起作用。

    或者从我的应用程序委托中判断用户是否打开了操作表或模式视图控制器?

    或者,我只是把它们放在它们停止的地方,而不立即提供任何数据添加成功的指示吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   dwineman    15 年前

    你得自己跟踪他们。一个简单的方法是在每次显示模态内容时发布通知,并引用userinfo字典中的模态视图/工作表/警报。无论何时模式视图返回,都会发布不同的通知。

    观察应用程序委派中的通知(或在任何有意义的地方,但应用程序委派最简单)。当您收到第一个引用时,存储一个(弱)对模态视图的引用,并在收到第二个引用时将其归零。在这期间,你可以 -application:handleOpenURL: 如果引用为非零,则通过取消模态视图。

    还要注意的是,在警报的情况下,最好在进入后台时关闭它们。几周后你可能会再次被预测,用“你确定吗”来问候用户是一种不好的方式?“确定/取消”当他们可能不再知道你在问什么。