From 51ac6c01e4b5b517c16097c29eae6ee6fc04907f Mon Sep 17 00:00:00 2001 From: Fin Date: Fri, 25 Mar 2022 14:57:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=B3=9B=E5=9E=8B=E9=87=8D?= =?UTF-8?q?=E6=9E=84=20BaseViewController=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/BaseViewController.swift | 6 +++--- Controller/GroupFilterViewController.swift | 6 +----- Controller/HomeViewController.swift | 6 +----- Controller/MessageListViewController.swift | 6 +----- Controller/MessageSettingsViewController.swift | 5 +---- Controller/NewServerViewController.swift | 5 +---- Controller/SoundsViewController.swift | 6 +----- 7 files changed, 9 insertions(+), 31 deletions(-) diff --git a/Controller/BaseViewController.swift b/Controller/BaseViewController.swift index 9af8943..8068d61 100644 --- a/Controller/BaseViewController.swift +++ b/Controller/BaseViewController.swift @@ -8,9 +8,9 @@ import Material import UIKit -class BaseViewController: UIViewController { - let viewModel: ViewModel - init(viewModel: ViewModel) { +class BaseViewController: UIViewController where T: ViewModel { + let viewModel: T + init(viewModel: T) { self.viewModel = viewModel super.init(nibName: nil, bundle: nil) diff --git a/Controller/GroupFilterViewController.swift b/Controller/GroupFilterViewController.swift index 3f81b34..7306103 100644 --- a/Controller/GroupFilterViewController.swift +++ b/Controller/GroupFilterViewController.swift @@ -14,7 +14,7 @@ import RxDataSources import RxSwift import UIKit -class GroupFilterViewController: BaseViewController { +class GroupFilterViewController: BaseViewController { let doneButton: BKButton = { let btn = BKButton() btn.setTitle(NSLocalizedString("done"), for: .normal) @@ -63,10 +63,6 @@ class GroupFilterViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = self.viewModel as? GroupFilterViewModel else { - return - } - let output = viewModel.transform( input: GroupFilterViewModel.Input( showAllGroups: self.showAllGroupsButton.rx diff --git a/Controller/HomeViewController.swift b/Controller/HomeViewController.swift index eaad784..192ebb1 100644 --- a/Controller/HomeViewController.swift +++ b/Controller/HomeViewController.swift @@ -13,7 +13,7 @@ import RxSwift import UIKit import UserNotifications -class HomeViewController: BaseViewController { +class HomeViewController: BaseViewController { let newButton: BKButton = { let btn = BKButton() btn.setImage(Icon.add, for: .normal) @@ -75,10 +75,6 @@ class HomeViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = self.viewModel as? HomeViewModel else { - return - } - // 第一次进入APP 查看通知权限设置 let authorizationStatus = Single.create { single -> Disposable in UNUserNotificationCenter.current().getNotificationSettings { settings in diff --git a/Controller/MessageListViewController.swift b/Controller/MessageListViewController.swift index c4d9455..3fe137e 100644 --- a/Controller/MessageListViewController.swift +++ b/Controller/MessageListViewController.swift @@ -30,7 +30,7 @@ enum MessageDeleteType: Int { } } -class MessageListViewController: BaseViewController { +class MessageListViewController: BaseViewController { let deleteButton: BKButton = { let btn = BKButton() btn.setImage(UIImage(named: "baseline_delete_outline_black_24pt"), for: .normal) @@ -96,10 +96,6 @@ class MessageListViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = self.viewModel as? MessageListViewModel else { - return - } - let batchDelete = deleteButton.rx .tap .flatMapLatest { _ -> PublishRelay in diff --git a/Controller/MessageSettingsViewController.swift b/Controller/MessageSettingsViewController.swift index 0eabc34..cd9751a 100644 --- a/Controller/MessageSettingsViewController.swift +++ b/Controller/MessageSettingsViewController.swift @@ -9,7 +9,7 @@ import Material import RxDataSources import UIKit -class MessageSettingsViewController: BaseViewController { +class MessageSettingsViewController: BaseViewController { let tableView: UITableView = { let tableView = UITableView() tableView.separatorStyle = .none @@ -34,9 +34,6 @@ class MessageSettingsViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = self.viewModel as? MessageSettingsViewModel else { - return - } let output = viewModel.transform( input: MessageSettingsViewModel.Input( itemSelected: self.tableView.rx.modelSelected(MessageSettingItem.self).asDriver(), diff --git a/Controller/NewServerViewController.swift b/Controller/NewServerViewController.swift index 8e0ad19..3066b16 100644 --- a/Controller/NewServerViewController.swift +++ b/Controller/NewServerViewController.swift @@ -13,7 +13,7 @@ import SafariServices import SnapKit import UIKit -class NewServerViewController: BaseViewController { +class NewServerViewController: BaseViewController { let scanButton: BKButton = { let button = BKButton() button.setImage(UIImage(named: "baseline_qr_code_scanner_black_24pt"), for: .normal) @@ -74,9 +74,6 @@ class NewServerViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = self.viewModel as? NewServerViewModel else { - return - } // 点击提醒按钮事件 let noticeTap = noticeLabel.gestureRecognizers!.first!.rx .event diff --git a/Controller/SoundsViewController.swift b/Controller/SoundsViewController.swift index d71c02e..b102de8 100644 --- a/Controller/SoundsViewController.swift +++ b/Controller/SoundsViewController.swift @@ -15,7 +15,7 @@ import RxCocoa import RxDataSources import RxSwift -class SoundsViewController: BaseViewController { +class SoundsViewController: BaseViewController { let tableView: UITableView = { let tableView = UITableView() tableView.backgroundColor = BKColor.background.primary @@ -42,10 +42,6 @@ class SoundsViewController: BaseViewController { } override func bindViewModel() { - guard let viewModel = viewModel as? SoundsViewModel else { - return - } - let output = viewModel.transform( input: SoundsViewModel.Input(soundSelected: self.tableView.rx .modelSelected(SoundCellViewModel.self)