Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // DetailViewController.swift
- // GD3_D_9244
- //
- // Created by Greg on 22/10/19.
- // Copyright © 2019 GD3_A_9125. All rights reserved.
- //
- import UIKit
- import RealmSwift
- class DetailViewController: UIViewController {
- var realm: Realm! = nil
- @IBOutlet weak var name_d_9244: UILabel!
- @IBOutlet weak var npm_d_9244: UILabel!
- var index: IntegerLiteralType!
- var studentsDataList: Results<Student>{
- get{
- return try! Realm().objects(Student.self)
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- realm = try! Realm()
- name_d_9244.text = studentsDataList[index].name_d_9244
- npm_d_9244.text = studentsDataList[index].npm_d_9244
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // TableViewController.swift
- // GD3_D_9244
- //
- // Created by Lab PK 3 on 21/10/19.
- // Copyright © 2019 GD3_A_9125. All rights reserved.
- //
- import Foundation
- import RealmSwift
- class TableViewController: UITableViewController, UISearchResultsUpdating{
- let searchController = UISearchController(searchResultsController: nil)
- var realm: Realm!
- var studentsData: Student!
- var filteredTableData: [Student] = []
- var studentsDataList: Results<Student>{
- get{
- return try! Realm().objects(Student.self)
- }
- }
- var isFiltering: Bool {
- return searchController.isActive && !isSearchBarEmpty
- }
- func updateSearchResults(for searchController: UISearchController) {
- let searchBar = searchController.searchBar
- filterContentForSearchText(searchBar.text!)
- }
- func filterContentForSearchText(_ searchText: String) {
- filteredTableData = studentsDataList.filter { (student: Student) -> Bool in
- return student.name_d_9244.lowercased().contains(searchText.lowercased())
- }
- tableView.reloadData()
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- realm = try! Realm()
- // 1
- searchController.searchResultsUpdater = self
- // 2
- searchController.obscuresBackgroundDuringPresentation = false
- // 3
- searchController.searchBar.placeholder = "Search"
- // 4
- navigationItem.searchController = searchController
- // 5
- definesPresentationContext = true
- tableView.tableHeaderView = searchController.searchBar
- }
- var isSearchBarEmpty: Bool {
- return searchController.searchBar.text?.isEmpty ?? true
- }
- override func numberOfSections(in tableView: UITableView) -> Int {
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- if isFiltering {
- return filteredTableData.count
- }
- return studentsDataList.count
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath)
- let data: Student
- if isFiltering {
- data = filteredTableData[indexPath.row]
- } else {
- data = studentsDataList[indexPath.row]
- }
- cell.textLabel!.text = data.name_d_9244
- cell.detailTextLabel!.text = data.npm_d_9244
- return cell
- }
- override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
- let index = indexPath.row
- performSegue(withIdentifier: "detailVC", sender: index)
- tableView.deselectRow(at: indexPath, animated: true)
- }
- override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
- if editingStyle == .delete{
- let data = studentsDataList[indexPath.row]
- try! self.realm.write({
- self.realm.delete(data)
- })
- tableView.deleteRows(at: [indexPath], with: .automatic)
- }
- }
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
- if segue.identifier == "detailVC"{
- if let descVC = segue.destination as? DetailViewController{
- descVC.index = sender as? IntegerLiteralType
- }
- }
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement