【发布时间】:2020-04-22 09:48:26
【问题描述】:
我一直在尝试将 userDefaults 添加到我的代码中并尝试保存例如一个任务,以便下次打开应用程序时我仍然可以看到该任务。 没有退出了解 userDefaults 是如何工作的。也许有人可以帮助我?
taskList VC 文件:
@IBAction func doneButton_Tapped(_ sender: Any) { var newTask = taskList()
newTask.name = taskNameField.text!
newTask.dueDate = dueDatePicker.date
newTask.dateCreated = Date()
taskArr.append(newTask)
didCreateTask = true
self.navigationController?.popViewController(animated: true)
}
mainVC 文件:
struct taskList {
var name: String!
var dateCreated: Date!
var dueDate:Date!
}
private let listIdentifier = "listIdentifier"
var taskArr: [taskList] = []
let defauls = UserDefaults.standard
class ViewController: UIViewController {
@IBOutlet var tableView:UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Tasks List"
tableView.delegate = self
tableView.dataSource = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
tableView.reloadData()
}
@IBAction func newTaskButton_Tapped(_ sender: Any){
self.performSegue(withIdentifier: "newTaskSague", sender: nil)
}
}
extension ViewController: UITableViewDelegate{
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
}
extension ViewController:UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return taskArr.count}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: listIdentifier, for: indexPath) as! listCell
let row = indexPath.row
let formatter = DateFormatter()
cell.title?.text = taskArr[row].name
formatter.dateStyle = .medium
formatter.timeStyle = .short
cell.subTitle?.text = "Due: \(formatter.string(from: taskArr[row].dueDate))"
return cell
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete{
taskArr.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
}
【问题讨论】:
标签: ios swift xcode uikit nsuserdefaults