【发布时间】:2017-09-02 17:35:06
【问题描述】:
我有MainViewController 那是我的UIPageViewController。我要显示 2 个视图 FirstDataViewController 和 SecondDataViewController。
我想执行更新MainViewControllre 中的items 的请求,然后将其传递给我的 2 个子视图。
getData 是我的函数,它包含来自 Request 的数据,然后更新 MainViewController's 项目
extension MainViewController {
func getData() {
getBasicData() { [weak self] (basicModel) in
guard let strongSelf = self else { return }
strongSelf.getExperienceData() { [weak self] (experienceModel) in
guard let strongSelf = self else { return }
let items = RequestItems(basicData: basicModel,
experienceData: experienceModel)
strongSelf.updateItems(items: items)
}
}
}
}
主视图控制器:
class MainViewController: UIPageViewController {
var items: RequestItems
let firstDataViewController: FirstDataViewController
let secondDataViewController: SecondDataViewController
let basicDataManager: APIManagerProtocol
let experienceDataManager: APIManagerProtocol
private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.firstDataViewController, self.secondDataViewController]
}()
convenience init() {
self.init(with: RequestItems())
}
init(with items: RequestItems) {
self.items = items
let apiManager = APIManager()
basicDataManager = apiManager.createBasicDataManager()
experienceDataManager = apiManager.createExperienceDataManager()
self.firstDataViewController = FirstDataViewController(with: items)
self.secondDataViewController = SecondDataViewController(with: items)
super.init(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
self.edgesForExtendedLayout = []
}
func updateItems(items: RequestItems) {
self.items = items
}
}
如何使用getData()函数先更新MainViewController项,然后将数据传递给子视图?或者也许有更好的选择?
【问题讨论】:
标签: ios swift request uipageviewcontroller pass-data