当函数在父视图中回调时更新子视图

update subviews when function calls back in parent view

我有一个父视图,它是一个 uipageviewcontroller,在子页面视图中,我在视图中有一个 uiimage。问题是我需要在子视图显示之前(可能在后台)抓取这些图像。现在我在 class 中有一个函数,如下所示:

   // these functions are in a class to model the data for each subview
    func loadImages(){
        if self.images != nil && self.images!.count > 0{
            self.loadFirst()
        }
        if self.location_id != nil && (self.images == nil || self.images!.count == 0) {
        ApiWrapper.getPictures(self.location_id!, completionHandler: self.imagesCallback)
        }

    }
    func imagesCallback(cardImagesArray: [CardImage]){
        println("images callback")
        self.images = cardImagesArray
        self.loadFirst()
    }
    func loadFirst(){
        if self.images!.count > 0 {
            self.images![0].getData()
        }
    }

我正在为 uipageviewcontroller 数组中接下来的五个 "pages" 在父视图中调用 loadImages。问题是当我滑动到下一个视图并且图像尚未加载时执行 "image callback" 它不会更新视图。如何在执行 imagesCallback 时更新视图? imagesCallback 在每个屏幕显示的数据的 class 模型中。

关于如何执行此操作,您有几个不同的选择:

  1. 在父 pageviewcontroller 上实现 returnImageToDisplay,然后执行:

    var parent = self.parentviewcontroller? as theSubClassedPageViewController
    var image = parent.returnImageToDisplay(some_identifier)
    

    2.Subclass 您用作页面的子 UIViewController,然后执行与 1 类似的操作。- 获取实例处理程序并使用数据作为参数调用方法。

我认为 1. 更容易实现。