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

时间:2015-04-22 21:40:43

标签: ios swift uipageviewcontroller

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

   // 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的数组中的下五个“页面”调用loadImages。问题是当我滑动到下一个视图并且在执行“图像回调”时图像尚未加载时它不会更新视图。如何执行imagesCallback时更新视图? imagesCallback是每个屏幕显示的数据的类模型。

1 个答案:

答案 0 :(得分:0)

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

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

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

    2.将您正在使用的子UIViewController子类化为一个页面,然后执行类似于1.-获取实例处理程序并以数据作为参数调用方法。

  2. 在我看来1.更容易实现。