Day 29 Realm的练习-使用者注册系统(3/3)

今天我们把tableView做更新

func updateData(){
    users = []
    let allorders = realm.objects(Users.self)
    guard allorders.count > 0 else { print("nil");return }
    for i in 1...allorders.count{
        users.append(structData(setUser: allorders[i-1].name, setPassword: String(allorders[i-1].password), setEmail : allorders[i-1].email, setId : allorders[i-1].UserID))//把每个资料写进刚刚宣告得空阵列
    }
    MyTableView?.reloadData()//更新TableView
}  

删除功能:
我们用primaryKey去做删除我们选定的资料,之後除了要再tableView做deleteRows,realm也要写delete把他删除

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let userId = NSPredicate(format: "UserID = %@", self.users[indexPath.row].setId)
        
    let deleteUser = realm.objects(Users.self).filter(userId)
        
    let deleteAction = UIContextualAction(style:.destructive, title: "delete") { [self] (action , sourceView ,complete) in
            
        self.users.remove(at: indexPath.row)
        self.MyTableView.deleteRows(at: [indexPath], with: .top)
            
        try! self.realm.write{
            realm.delete(deleteUser)
           }
        complete(true)  
}
        

最後我们可以,创建一个UserVC,然後再didSelectRowAt,把点击使用者会跳页的功能做出来,当然里面你可以在客制化你想要显示的内容,我这边是显示使用者名称而已

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let switchToSecondScreen = UserVC()
    switchToSecondScreen.UserVariable = users[indexPath.row].setUser
    self.navigationController?.pushViewController(switchToSecondScreen, animated: true)
}

UserVC:

import UIKit

class UserVC: UIViewController {

    @IBOutlet var UserNameLabel: UILabel!
    
    var UserVariable: String!
    
    override func viewDidLoad() {
        
        UserNameLabel.text = UserVariable
        
        super.viewDidLoad()
    }
}

记得用一个变数去储存我们要传的值会比较好,可以避免掉程序不会执行的错误

今天实作就到这边~


<<:  Day 26: LeetCode Hard+Medium

>>:  Day 26 - State Monad I

[Vue.js + Axios] ToDoList (下)

续前一篇的例子: 分段进行: Vue 基本结构及使用到的属性: var app = new Vue(...

[Python 爬虫这样学,一定是大拇指拉!] DAY05 - URL / URN / URI (1)

本篇章主要是先从技术层面来解释 URI 与 URL 及比较少使用到却与生活息息相关的 URN,让读者...

Day14 实作文章预览功能

接下来我们会开始实作各个页面的逻辑,每个页面需要的资料不一样,适用的渲染模式也不一样,於是今天我们会...

Quartz.Net Job整合DI的生命周期问题

Quartz.Net 提供直接整合.Net Core DI的扩展,安装底下的套件即可 Install...

玩通灵 - Intigriti's 0521 XSS challenge (Clickjacking)

前言 这是之前 Huli 大在前端社团分享的 国外 XSS 挑战。 最近比较有时间来分享,当时 「从...