| | |
| | | let StudyCompleteCoinUpdate_Noti = Notification.Name.init("StudyCompleteCoinUpdate_Noti") |
| | | |
| | | class HomeStudyCompleteVC: BaseVC { |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var label_correctNum: UILabel! |
| | | @IBOutlet weak var label_title_correctNum: UILabel! |
| | | @IBOutlet weak var label_totalNum: UILabel! |
| | | @IBOutlet weak var label_title_totalNum: UILabel! |
| | | @IBOutlet weak var label_errorNum: UILabel! |
| | | @IBOutlet weak var label_title_errorNum: UILabel! |
| | | @IBOutlet weak var label_ratioNum: UILabel! |
| | | @IBOutlet weak var btn_next: UIButton! |
| | | @IBOutlet weak var stackView: UIStackView! |
| | | @IBOutlet weak var btn_back: UIButton! |
| | | @IBOutlet weak var label_coin: UILabel! |
| | | @IBOutlet weak var label_correctNum: UILabel! |
| | | @IBOutlet weak var label_title_correctNum: UILabel! |
| | | @IBOutlet weak var label_totalNum: UILabel! |
| | | @IBOutlet weak var label_title_totalNum: UILabel! |
| | | @IBOutlet weak var label_errorNum: UILabel! |
| | | @IBOutlet weak var label_title_errorNum: UILabel! |
| | | @IBOutlet weak var label_ratioNum: UILabel! |
| | | @IBOutlet weak var btn_next: UIButton! |
| | | @IBOutlet weak var stackView: UIStackView! |
| | | @IBOutlet weak var btn_back: UIButton! |
| | | |
| | | // private var totalCoin:Int = 0 |
| | | private var totalNum:Int? //总题目数量 |
| | | // private var totalCoin:Int = 0 |
| | | private var totalNum:Int? //总题目数量 |
| | | |
| | | var viewModel:HomeListenFightViewModel! |
| | | var studyScheduleModel:StudyScheduleModel! |
| | | var viewModel:HomeListenFightViewModel! |
| | | var studyScheduleModel:StudyScheduleModel! |
| | | |
| | | required init(totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel){ |
| | | super.init(nibName: nil, bundle: nil) |
| | | // self.totalCoin = totalCoin |
| | | self.totalNum = totalNum |
| | | self.viewModel = viewModel |
| | | self.studyScheduleModel = studyScheduleModel |
| | | } |
| | | required init(totalNum:Int? = nil,viewModel:HomeListenFightViewModel,studyScheduleModel:StudyScheduleModel){ |
| | | super.init(nibName: nil, bundle: nil) |
| | | // self.totalCoin = totalCoin |
| | | self.totalNum = totalNum |
| | | self.viewModel = viewModel |
| | | self.studyScheduleModel = studyScheduleModel |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | |
| | | navigationController?.viewControllers.removeAll(where: { vc in |
| | | return vc is HomeListenFightVC |
| | | }) |
| | | navigationController?.viewControllers.removeAll(where: { vc in |
| | | return vc is HomeListenFightVC |
| | | }) |
| | | |
| | | |
| | | |
| | | yy_popBlock = {[weak self] () in |
| | | self?.backAction() |
| | | } |
| | | yy_popBlock = {[weak self] () in |
| | | self?.backAction() |
| | | } |
| | | |
| | | label_coin.text = "恭喜您,已完成全部答题!获得0积分!" |
| | | label_correctNum.text = "\(viewModel.correctNum)次" |
| | | label_errorNum.text = "\(viewModel.errorNum)次" |
| | | label_totalNum.text = "\(viewModel.correctNum + viewModel.errorNum)次" |
| | | label_coin.text = "恭喜您,已完成全部答题!获得0积分!" |
| | | label_correctNum.text = "\(viewModel.correctNum)次" |
| | | label_errorNum.text = "\(viewModel.errorNum)次" |
| | | label_totalNum.text = "\(viewModel.correctNum + viewModel.errorNum)次" |
| | | |
| | | if viewModel.correctNum + viewModel.errorNum == 0{ |
| | | label_ratioNum.text = String(format: "正确率:0%%") |
| | | }else{ |
| | | label_ratioNum.text = String(format: "正确率:%ld%%", floor(Double(viewModel.correctNum) / Double(viewModel.correctNum + viewModel.errorNum) * 100).int) |
| | | } |
| | | if viewModel.correctNum + viewModel.errorNum == 0{ |
| | | label_ratioNum.text = String(format: "正确率:0%%") |
| | | }else{ |
| | | label_ratioNum.text = String(format: "正确率:%ld%%", floor(Double(viewModel.correctNum) / Double(viewModel.correctNum + viewModel.errorNum) * 100).int) |
| | | } |
| | | |
| | | if totalNum != nil && viewModel.listenType.value == .game2{ |
| | | label_title_totalNum.text = "总题目:" |
| | | label_title_correctNum.text = "正确题目:" |
| | | label_title_errorNum.text = "错误题目:" |
| | | label_coin.text = "恭喜您,已完成游戏!获得0积分!" |
| | | if totalNum != nil && viewModel.listenType.value == .game2{ |
| | | label_title_totalNum.text = "总题目:" |
| | | label_title_correctNum.text = "正确题目:" |
| | | label_title_errorNum.text = "错误题目:" |
| | | label_coin.text = "恭喜您,已完成游戏!获得0积分!" |
| | | |
| | | label_totalNum.text = "\(totalNum!)" |
| | | label_correctNum.text = "\(viewModel.correctNum)" |
| | | label_errorNum.text = "\(viewModel.errorNum)" |
| | | } |
| | | label_totalNum.text = "\(totalNum!)" |
| | | label_correctNum.text = "\(viewModel.correctNum)" |
| | | label_errorNum.text = "\(viewModel.errorNum)" |
| | | } |
| | | |
| | | switch viewModel.listenType.value{ |
| | | case .lesson5,.game1,.game2,.story1,.story2:btn_next.isHidden = true |
| | | default:btn_next.isHidden = false |
| | | } |
| | | switch viewModel.listenType.value{ |
| | | case .lesson5,.game1,.game2,.story1,.story2:btn_next.isHidden = true |
| | | default:btn_next.isHidden = false |
| | | } |
| | | |
| | | stackView.isHidden = viewModel.listenType.value == .story2 |
| | | label_ratioNum.isHidden = viewModel.listenType.value == .story2 |
| | | stackView.isHidden = viewModel.listenType.value == .story2 |
| | | label_ratioNum.isHidden = viewModel.listenType.value == .story2 |
| | | |
| | | NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil) |
| | | } |
| | | NotificationCenter.default.post(name: MeUserInfoUpdate_Noti, object: nil) |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | } |
| | | override func setUI() { |
| | | super.setUI() |
| | | } |
| | | |
| | | override func setRx() { |
| | | NotificationCenter.default.rx.notification(StudyCompleteCoinUpdate_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] data in |
| | | guard let weakSelf = self else { return } |
| | | override func setRx() { |
| | | NotificationCenter.default.rx.notification(StudyCompleteCoinUpdate_Noti).take(until: self.rx.deallocated).subscribe(onNext: {[weak self] data in |
| | | guard let weakSelf = self else { return } |
| | | |
| | | if let coin = data.object as? Int{ |
| | | switch weakSelf.viewModel.listenType.value { |
| | | case .game2:weakSelf.label_coin.text = "恭喜您,已完成游戏!获得\(coin)积分!" |
| | | default:weakSelf.label_coin.text = "恭喜您,已完成全部答题!获得\(coin)积分!" |
| | | } |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | if let coin = data.object as? Int{ |
| | | switch weakSelf.viewModel.listenType.value { |
| | | case .game2:weakSelf.label_coin.text = "恭喜您,已完成游戏!获得\(coin)积分!" |
| | | default:weakSelf.label_coin.text = "恭喜您,已完成全部答题!获得\(coin)积分!" |
| | | } |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | } |
| | | |
| | | @IBAction func backHomeAction(_ sender: UIButton) { |
| | | backAction() |
| | | } |
| | | @IBAction func backHomeAction(_ sender: UIButton) { |
| | | backAction() |
| | | } |
| | | |
| | | @IBAction func nextAction(_ sender: UIButton) { |
| | | @IBAction func nextAction(_ sender: UIButton) { |
| | | |
| | | |
| | | var toVC:UIViewController? |
| | | for subv in self.navigationController?.viewControllers ?? []{ |
| | | if subv is HomeListenVC{ |
| | | toVC = subv;break |
| | | } |
| | | } |
| | | var toVC:UIViewController? |
| | | for subv in self.navigationController?.viewControllers ?? []{ |
| | | if subv is HomeListenVC{ |
| | | toVC = subv;break |
| | | } |
| | | } |
| | | |
| | | if toVC == nil{ |
| | | self.navigationController?.popToRootViewController(animated: true) |
| | | }else{ |
| | | let nextType = ListenType(rawValue: viewModel.listenType.value.rawValue + 1)! |
| | | if toVC == nil{ |
| | | self.navigationController?.popToRootViewController(animated: true) |
| | | }else{ |
| | | let nextType = ListenType(rawValue: viewModel.listenType.value.rawValue + 1)! |
| | | |
| | | sceneDelegate?.startTimer() |
| | | sceneDelegate?.startTimer() |
| | | |
| | | switch nextType { |
| | | case .lesson2: |
| | | Services.pictureSelectVoice(day:viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson2,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson2.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | switch nextType { |
| | | case .lesson2: |
| | | Services.pictureSelectVoice(day:viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson2,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson2.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | |
| | | case .lesson3: |
| | | Services.induceExclude(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson3,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson3.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | case .lesson3: |
| | | Services.induceExclude(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson3,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson3.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | case .lesson4: |
| | | Services.questionsAndAnswers(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson4.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | case .lesson4: |
| | | Services.questionsAndAnswers(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson4,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson4.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | case .lesson5: |
| | | Services.pictureMateVoice(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson5,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson5.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | case .lesson5: |
| | | Services.pictureMateVoice(day: viewModel.day.value!, quarter: viewModel.quarter.value!, week: viewModel.week.value!).subscribe(onNext: {[weak self] result in |
| | | guard let weakSelf = self else { return } |
| | | if let data = result.data{ |
| | | let fightVC = HomeListenFightVC(listenType: .lesson5,quarter:weakSelf.viewModel.quarter.value!,week: weakSelf.viewModel.week.value!,day:weakSelf.viewModel.day.value!) |
| | | fightVC.title = ListenType.lesson5.rawTitle |
| | | fightVC.data = data |
| | | fightVC.studyScheduleModel = weakSelf.studyScheduleModel |
| | | weakSelf.push(vc: fightVC) |
| | | } |
| | | }).disposed(by: disposeBag) |
| | | |
| | | default:break |
| | | } |
| | | } |
| | | } |
| | | default:break |
| | | } |
| | | } |
| | | } |
| | | |
| | | private func backAction(){ |
| | | for vc in navigationController?.viewControllers ?? []{ |
| | | if vc.isKind(of: HomeListenVC.self){ |
| | | navigationController?.popToViewController(vc, animated: true);break |
| | | } |
| | | } |
| | | } |
| | | private func backAction(){ |
| | | for vc in navigationController?.viewControllers ?? []{ |
| | | if vc.isKind(of: HomeListenVC.self){ |
| | | navigationController?.popToViewController(vc, animated: true);break |
| | | } |
| | | } |
| | | } |
| | | } |