85 lines
1.8 KiB
Plaintext
Executable File
85 lines
1.8 KiB
Plaintext
Executable File
import UIKit
|
|
import LeadKit
|
|
import TableKit
|
|
import RxSwift
|
|
import RxCocoa
|
|
|
|
final class {{ module_info.name }}ViewController: UIViewController {
|
|
|
|
let viewModel: {{ module_info.name }}ViewModel
|
|
|
|
init(viewModel: {{ module_info.name }}ViewModel) {
|
|
self.viewModel = viewModel
|
|
super.init(nibName: nil, bundle: nil)
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
@IBOutlet private weak var tableView: UITableView!
|
|
|
|
private lazy var tableDirector = TableDirector(tableView: tableView)
|
|
|
|
private lazy var paginationWrapper = {
|
|
PaginationWrapper(wrappedView: AnyPaginationWrappable(view: tableView),
|
|
cursor: viewModel.cursor,
|
|
delegate: self)
|
|
}()
|
|
|
|
// MARK: - View Life Cycle
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
initialLoadView()
|
|
}
|
|
|
|
}
|
|
|
|
extension {{ module_info.name }}ViewController: ConfigurableController {
|
|
|
|
func bindViews() {
|
|
paginationWrapper.reload()
|
|
}
|
|
|
|
func configureAppearance() {
|
|
<#code#>
|
|
}
|
|
|
|
func addViews() {
|
|
<#code#>
|
|
}
|
|
|
|
func configureBarButtons() {
|
|
<#code#>
|
|
}
|
|
|
|
func localize() {
|
|
<#code#>
|
|
}
|
|
|
|
}
|
|
|
|
extension {{ module_info.name }}ViewController: PaginationWrapperDelegate {
|
|
|
|
typealias DataSourceType = {{ module_info.name }}Cursor
|
|
|
|
func paginationWrapper(didLoad newItems: DataSourceType.ResultType,
|
|
using dataSource: DataSourceType) {
|
|
|
|
tableDirector.append(rows: <#T##[Row]#>)
|
|
}
|
|
|
|
func paginationWrapper(didReload allItems: DataSourceType.ResultType,
|
|
using dataSource: DataSourceType) {
|
|
|
|
tableDirector.replace(withRows: <#T##[Row]#>)
|
|
}
|
|
|
|
func clearView() {
|
|
tableDirector.safeClear()
|
|
}
|
|
|
|
}
|