今天我们把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
续前一篇的例子: 分段进行: Vue 基本结构及使用到的属性: var app = new Vue(...
本篇章主要是先从技术层面来解释 URI 与 URL 及比较少使用到却与生活息息相关的 URN,让读者...
接下来我们会开始实作各个页面的逻辑,每个页面需要的资料不一样,适用的渲染模式也不一样,於是今天我们会...
Quartz.Net 提供直接整合.Net Core DI的扩展,安装底下的套件即可 Install...
前言 这是之前 Huli 大在前端社团分享的 国外 XSS 挑战。 最近比较有时间来分享,当时 「从...