Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. @IBOutlet private weak var segmentPageContainerView: UIView!
  2. @IBOutlet private weak var continueButton: UIButton!
  3. private let segmentPageViewController = SegmentPageViewController(options: nil)
  4.  
  5. fileprivate var viewModel: OnboardingBStoreViewModelType!
  6.  
  7. override func viewDidLoad() {
  8. super.viewDidLoad()
  9. viewModel += self
  10. setupViews()
  11. }
  12.  
  13. private func setupViews() {
  14. segmentPageContainerView.addSubview(segmentPageViewController.view)
  15. segmentPageViewController.view.snp.makeConstraints {
  16. $0.edges.equalToSuperview()
  17. }
  18. }
  19.  
  20. func render(state: OnboardingBViewState) {
  21. guard let currentStepVM = state.currentStepVM else { return }
  22. if case .newSteps = state {
  23. let controllers = state.stepVMs?.compactMap { $0 }.map { viewModel -> UIViewController? in
  24. if let viewModel = viewModel as? CycleDurationInputStoreViewModelType {
  25. return CycleDurationInputViewControllerFactory.default(viewModel: viewModel)
  26. } else if let viewModel = viewModel as? PeriodDurationInputStoreViewModelType {
  27. return PeriodDurationInputViewControllerFactory.default(viewModel: viewModel)
  28. } else {
  29. return nil
  30. }
  31. }.compactMap { $0 } ?? []
  32. segmentPageViewController.setupViewControllers(controllers)
  33. }
  34.  
  35. if let currentStepIndex = state.stepVMs?.firstIndex(where: { $0.type == currentStepVM.type }) {
  36. segmentPageViewController.showViewController(atIndex: currentStepIndex)
  37. }
  38.  
  39. continueButton.backgroundColor = state.isContinueEnabled
  40. ? .blue
  41. : UIColor.blue.withAlphaComponent(0.6)
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement