如何停止加载容器直到执行父UIviewcontroller代码?

时间:2016-07-29 09:24:06

标签: swift

我有一个根viewController(v1)和第二个UIViewController(v2)。 v2显示按钮单击,v2有容器(c1)。我的问题是当我调用v2然后c1也同时加载但我需要在完全执行v2函数后加载c1。在v2中,我从数据库中获取值,因此需要一些时间。

2 个答案:

答案 0 :(得分:3)

您必须在子容器中的func viewDidAppear(animated:Bool)方法中使用正确的代码,该方法在父完成其加载代码后执行

func viewDidAppear(animated: Bool)
{
// code
}

答案 1 :(得分:0)

不是停止容器加载,而是向子控制器添加一个委托,一旦V2完成加载,V2将调用该委托。

@protocol LoadingDelegate {
   func didFinishLoading()
}

class ViewController V2 {

     func viewDidLoad() {
         childController.delegate = self
     }

     func finishedProcessing() {
      // Finsihed processing 
         delegate. didFinishLoading()
     }
}


class ChildController<LoadingDelegate> {
     func didFinishLoading() {
         // Do your stuff here
     }
}

直到V2正在加载时,您可以在子控制器中显示活动指示器