Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @IBOutlet private weak var segmentPageContainerView: UIView!
- @IBOutlet private weak var continueButton: UIButton!
- private let segmentPageViewController = SegmentPageViewController(options: nil)
- fileprivate var viewModel: OnboardingBStoreViewModelType!
- override func viewDidLoad() {
- super.viewDidLoad()
- viewModel += self
- setupViews()
- }
- private func setupViews() {
- segmentPageContainerView.addSubview(segmentPageViewController.view)
- segmentPageViewController.view.snp.makeConstraints {
- $0.edges.equalToSuperview()
- }
- }
- func render(state: OnboardingBViewState) {
- guard let currentStepVM = state.currentStepVM else { return }
- if case .newSteps = state {
- let controllers = state.stepVMs?.compactMap { $0 }.map { viewModel -> UIViewController? in
- if let viewModel = viewModel as? CycleDurationInputStoreViewModelType {
- return CycleDurationInputViewControllerFactory.default(viewModel: viewModel)
- } else if let viewModel = viewModel as? PeriodDurationInputStoreViewModelType {
- return PeriodDurationInputViewControllerFactory.default(viewModel: viewModel)
- } else {
- return nil
- }
- }.compactMap { $0 } ?? []
- segmentPageViewController.setupViewControllers(controllers)
- }
- if let currentStepIndex = state.stepVMs?.firstIndex(where: { $0.type == currentStepVM.type }) {
- segmentPageViewController.showViewController(atIndex: currentStepIndex)
- }
- continueButton.backgroundColor = state.isContinueEnabled
- ? .blue
- : UIColor.blue.withAlphaComponent(0.6)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement