Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import SVProgressHUD
- class TopViewController: BaseViewController {
- @IBOutlet weak var eventTableView: UITableView!
- var eventList = [Event]()
- override func viewDidLoad() {
- super.viewDidLoad()
- self.navigationTitle = LocalizationHelper.shared.localized("MY_CFN")
- self.eventTableView!.register(UINib(nibName: "EventTableViewCell", bundle: nil), forCellReuseIdentifier: EventTableViewCell.identifier)
- self.eventTableView.separatorStyle = .none
- self.eventTableView.dataSource = self
- self.eventTableView.delegate = self
- self.getListEvent()
- }
- override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
- self.eventTableView.reloadData()
- }
- func getListEvent() {
- self.eventList.removeAll()
- SVProgressHUD.show()
- HttpClient.shared.request(method: HttpClient.METHOD.POST, api: HttpClient.API.Events, params: nil) { (json: String?, errorCode: HttpClient.ErrorCode?) in
- DispatchQueue.main.async(execute: {
- SVProgressHUD.dismiss()
- })
- if let err = errorCode , err == HttpClient.ErrorCode.OK {
- if var response = JsonParser.parseRawToObject(json) {
- if let status = response["status"] as? Int, let statusCode = HttpClient.ErrorCode(rawValue: status) {
- switch statusCode {
- case HttpClient.ErrorCode.OK:
- if let events = response["events"] as? [Dictionary<String, Any>] {
- for event in events {
- if let e = Event.parse(from: event) {
- self.eventList.append(e)
- }
- }
- }
- DispatchQueue.main.async {
- self.eventTableView.reloadData()
- }
- break
- default:
- if let message = response["message"] as? String {
- DispatchQueue.main.async {
- ErrorHandler.shared.showError(message: message)
- }
- }
- break
- }
- }
- }
- }
- }
- }
- override func onUpdateLocale() {
- super.onUpdateLocale()
- self.getListEvent()
- }
- }
- extension TopViewController: UITableViewDelegate, UITableViewDataSource {
- func numberOfSections(in tableView: UITableView) -> Int {
- return 1
- }
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return self.eventList.count
- }
- func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
- return 200
- }
- func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
- return UITableViewAutomaticDimension
- }
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: EventTableViewCell.identifier) as! EventTableViewCell
- cell.selectionStyle = .none
- cell.showCompanyList = {(_ event: Event?) -> (Void) in
- self.showCompanyList(event)
- }
- cell.update(with: eventList[indexPath.item])
- return cell
- }
- func showCompanyList(_ event: Event?) {
- let companyListViewController = CompanyListViewController()
- self.navigationController?.pushViewController(companyListViewController, animated: true)
- }
- }
Add Comment
Please, Sign In to add comment