如何在执行更多处理时关闭弹出窗口并显示活动指示器

时间:2013-06-08 04:04:15

标签: ios popover uiactivityindicatorview

将应用程序转换为在iPad上运行。需要一些帮助来理解处理弹出,解雇和活动指标的顺序。

这是所需的序列:

  1. 在弹出框中显示包含在导航控制器中的tableview。
  2. 从表格中选择一行。
  3. 将该行的信息发送到主视图控制器(父级)。
  4. 彻底解除弹出窗口。
  5. 显示活动指示器,显示正在进行处理。
  6. 做一些处理。
  7. 使活动指示消失。
  8. 在主视图上绘制图形。
  9. 我已经能够完成上述所有操作,除了弹出窗口停留在屏幕上,直到完成所有处理并绘制图形。当弹出消失时,活动指示器会立即显示。我试过代表,通知和制定者,但无济于事。看起来方法中的所有进程都不一定按顺序执行,并且弹出视图一直持续到执行完所有操作(在本例中为select row方法)。

    我在哪里放置处理代码和活动指标,以便一切按正确的顺序运行?

2 个答案:

答案 0 :(得分:1)

这是一个非常直接的实施

检查以下列表

  1. 创建popover
  2. 中显示的viewController的委托
  3. 将popover viewController的委托设置为主viewController
  4. 在主viewController中保留popover的引用,以便在收到事件后将其解除。
  5. 收到事件后,在获取所选值后忽略弹出窗口
  6. 显示活动指示器视图或HUD
  7. 处理完成后关闭活动指示
  8. Source code用于执行此操作的演示应用。

答案 1 :(得分:0)

使UIPopoverController实例成为iVar。 Alloc使用您需要的视图控制器在某些按钮方法或您设计的任何内容上初始化它。从弹出控制器的根视图控制器制作协议,并使父视图控制器符合它。在didSelectRowAtIndexPath:方法上,将该委托称为popover的父视图控制器。在父视图控制器中的消息接收中,关闭弹出框控制器实例并在那里进行处理。 (如果项目不支持ARC,请很好地管理内存,因为popover可能会被多次分配。)