【发布时间】:2017-04-08 11:20:27
【问题描述】:
我正在使用页面视图控制器在我的应用程序中实现图像轮播。我的父视图控制器中有一个容器视图,它有一个嵌入到页面视图控制器的 segue。我遇到的问题是当我需要异步获取这些图像时,segue 发生在 viewDidLoad 获取图像之前。
我为转会做准备:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "startCarousel" {
let carouselPageViewController = segue.destination as! CarouselPageViewController
carouselPageViewController.images = carouselImages
}
}
在 viewDidLoad 中:
GalleryManager.sharedInstance.getData = {
(data) in
// Assign images to instance property here ...
}
我的想法是,一旦获得图像,我就可以自己以编程方式启动 segue。或者,如果我应该以不同的方式这样做,任何建议都会非常感激。
【问题讨论】:
-
在嵌入式视图控制器中获取图像,而不是在嵌入式视图控制器中获取图像,或者保留对嵌入式视图控制器的引用并在拥有它们后更新图像属性。
-
我同意 @Paulw11 的观点,或者您可以将 getData 函数移到 viewWillAppear 或 viewDidAppear 中,这样函数在加载图像时不会导致延迟。
标签: ios swift uikit segue uistoryboardsegue