|
//
// OrderViewController.swift
// PaiAi
//
// Created by zhengjianfei on 16/4/7.
// Copyright © 2016年 FFIB. All rights reserved.
//
import UIKit
import RxSwift
import RxCocoa
import RxDataSources
protocol OrderViewControllerDelegate: class {
func didSelect(_ item: OrderItem)
}
final class OrderViewController: UIViewController {
// MARK: Storyboard property
@IBOutlet var tableView: UITableView!
weak var delegate: OrderViewControllerDelegate? = nil
// MARK: data property
let disposeBag = DisposeBag()
var orderViewModel = OrderViewModel()
// MARK: view function
override func viewDidLoad() {
super.viewDidLoad()
configureRxDataSource()
orderViewModel.reload(isRefresh: true)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
titleWithbackBar = "订单记录"
}
var dataSource: RxTableViewSectionedAnimatedDataSource<AnimatableSectionModel<Int, OrderItem>> {
return RxTableViewSectionedAnimatedDataSource<AnimatableSectionModel<Int, OrderItem>>(
configureCell: { (dataSource, tableView, indexPath, item) in
let cell = tableView.dequeueReusableCell(withIdentifier: "orderCell", for: indexPath) as! OrderCell
cell.setInfo(item)
return cell
})
}
func configureRxDataSource() {
orderViewModel.orderContents
.bind(to: tableView.rx.items(dataSource: dataSource))
.disposed(by: disposeBag)
tableView.rx.modelSelected(OrderItem.self)
.subscribe(onNext: { [unowned self] in self.delegate?.didSelect($0)})
.disposed(by: disposeBag)
tableView.rx.willDisplayCell
.subscribe({ [unowned self] in self.orderViewModel.preload(indexPath: $0.element?.indexPath)})
.disposed(by: disposeBag)
}
}
|