- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个任务应用程序,在一个 View Controller (AddPlan.swift) 中输入 4 个字符串,然后将这 4 个字符串保存到另一个 View Controller (ViewController.swift) 内的 TableView 中。一切都在按计划进行,但是我希望即使我终止了应用程序,也能显示已经创建的表格 View 单元格。我看过教程,但是没有教程显示如果它是自定义单元格如何保存单元格。我知道你可以使用 NSUserDefaults 但我一直没有运气。
这是与我的问题相关的 AddPlan.swift
class addPlan: UIViewController, UITextFieldDelegate {
var time: Int = 6
@IBOutlet var txt: UITextField!
@IBOutlet var Complete: UIImageView!
@IBOutlet var btn7: UIButton!
@IBOutlet var btn6: UIButton!
@IBOutlet var txt3: UITextField!
@IBOutlet var txt2: UITextField!
@IBOutlet var txt1: UITextField!
@IBOutlet var Button02: UIBarButtonItem!
override func viewDidLoad() {
self.txt.delegate = self;
self.txt1.delegate = self;
self.txt2.delegate = self;
self.txt3.delegate = self;
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true)
return false
}
func dismissKeyboard() {
//Causes the view (or one of its embedded text fields) to resign the first responder status.
view.endEditing(true)
}
@IBAction func ClickedforSelection(sender: AnyObject) {
taskMgr.addTask(txt.text!, desc: txt1.text!, date: txt2.text!, clas: txt3!.text!)
self.view.endEditing(true)
txt.text = ""
txt1.text = ""
txt2.text = ""
txt3.text = ""
这是与我的问题相关的 ViewController.swift
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
if(editingStyle == UITableViewCellEditingStyle.Delete){
taskMgr.tasks.removeAtIndex(indexPath.row)
NSUserDefaults.standardUserDefaults().setObject(taskMgr, forKey: "list")
tbl?.reloadData();
}
}
override func viewWillAppear(animated: Bool) {
tbl?.reloadData();
}
override func viewWillDisappear(animated: Bool) {
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
if (self.resultSearchController.active)
{
return self.filteredAppleProducts.count
}
else
{
return taskMgr.tasks.count
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableView
cell.lbl.text = taskMgr.tasks[indexPath.row].name
cell.lbl2.text = taskMgr.tasks[indexPath.row].desc
cell.lbl4.text = taskMgr.tasks[indexPath.row].date
cell.lbl3.text = taskMgr.tasks[indexPath.row].clas
return cell
}
这是我的 ViewController.swift 文件的 ViewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.\
text.enabled = false
self.tbl?.delegate = self
self.tbl?.dataSource = self
if NSUserDefaults.standardUserDefaults().objectForKey("list") != nil {
}
tbl!.separatorStyle = UITableViewCellSeparatorStyle.None
tbl!.backgroundColor = UIColor(red: 239 / 255.0, green: 239 / 255.0, blue: 239 / 255.0, alpha: 1.0)
我的 TaskMgr.tasks 来自这个文件..
import UIKit
var taskMgr: TaskManager = TaskManager()
struct task{
var name = "Un-Named"
var desc = "Un-Described"
var date = "Un-Described"
var clas = "Un-Described"
}
class TaskManager: NSObject {
var tasks = [task]()
func addTask(name: String, desc: String, date: String, clas: String){
tasks.append(task(name: name, desc: desc, date: date, clas: clas))
}
}
再次澄清一下,我的应用程序有 2 个 View Controller ,其中一个 (AddPlan.swift) 有 4 个 UITextFeilds 和一个按钮。我在该文本字段中输入单词,如果我按下按钮,这些单词将被传输到另一个 View Controller (ViewController.swift) 中的 UITableView。然后这些词会显示在一个单元格中。我想知道的是如何对单元格进行编码,以便在我退出/终止应用程序时,如果我重新打开应用程序,它们仍会显示。
最佳答案
您的问题是 XY problem .
您说“即使我终止应用程序,我也希望保存单元格中的文本,例如 lbl、lbl1、lbl2、lbl3。”
这个你想错了。 TableView 单元格是 MVC 设计模式中的 View 对象。它们向用户显示信息并与用户交互。他们不存储信息。数据存储在模型中(通常是一个数组)。在您的情况下,它看起来像 taskMgr.tasks
包含您正在显示到 TableView 的数据数组。如果用户更改了单元格中的数据,那么您应该立即保存这些更改,直接保存到 taskMgr.tasks[row]
,或者保存到一些临时的更改数组,以便您可以支持撤消。
无论如何,您需要弄清楚的是如何保存您的模型数据。为了帮助您解决这个问题,您需要更多地解释您的模型。
我看到您打开了一个包含更多信息的重复问题。不要那样做。编辑您的原始问题以提供有关您的模型、它的创建方式以及您当前为加载/保存该模型数据所做的任何操作的信息。
请注意,用户默认值可能不是一个好的选择。它旨在保存少量简单数据。存储大量 volatile 数据不是一个好主意。另一种存储形式可能是更好的选择,但您没有向我们提供足够的信息来提出建议。
关于ios - 终止/退出应用程序后如何在 UITableView 中使用 NSUserDefaults 显示自定义单元格,Xcode Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37623956/
我的Angular-Component位于一个flexbox(id =“log”)中。可以显示或隐藏flexbox。 我的组件内部有一个可滚动区域,用于显示日志消息。 (id =“message-li
我真的很困惑 有一个 phpinfo() 输出: MySQL 支持 启用 客户端 API 版本 5.5.40 MYSQL_MODULE_TYPE 外部 phpMyAdmin 显示: 服务器类型:Mar
我正在研究这个 fiddle : http://jsfiddle.net/cED6c/7/我想让按钮文本在单击时发生变化,我尝试使用以下代码: 但是,它不起作用。我应该如何实现这个?任何帮助都会很棒
我应该在“dogs_cats”中保存表“dogs”和“cats”各自的ID,当看到数据时显示狗和猫的名字。 我有这三个表: CREATE TABLE IF NOT EXISTS cats ( id
我有一个字符串返回到我的 View 之一,如下所示: $text = 'Lorem ipsum dolor ' 我正在尝试用 Blade 显示它: {{$text}} 但是,输出是原始字符串而不是渲染
我无法让我的链接(由图像表示,位于页面左侧)真正有效地显示一个 div(包含一个句子,位于中间)/单击链接时隐藏。 这是我的代码: Practice
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
最初我使用 Listview 来显示 oracle 结果,但是最近我不得不切换到 datagridview 来处理比 Listview 允许的更多的结果。然而,自从切换到数据网格后,我得到的结果越来越
我一直在尝试插入一个 Unicode 字符 ∇ 或 ▽,所以它显示在 Apache FOP 生成的 PDF 中。 这是我到目前为止所做的: 根据这个基本帮助 Apache XSL-FO Input,您
我正在使用 node v0.12.7 编写一个 nodeJS 应用程序。 我正在使用 pm2 v0.14.7 运行我的 nodejs 应用程序。 我的应用程序似乎有内存泄漏,因为它从我启动时的大约 1
好的,所以我有一些 jQuery 代码,如果从下拉菜单中选择了带有前缀 Blue 的项目,它会显示一个输入框。 代码: $(function() { $('#text1').hide();
当我试图检查 Chrome 中的 html 元素时,它显示的是 LESS 文件,而 Firefox 显示的是 CSS 文件。 (我正在使用 Bootstrap 框架) 如何在 Chrome 中查看 c
我是 Microsoft Bot Framework 的新手,我正在通过 youtube 视频 https://youtu.be/ynG6Muox81o 学习它并在 Ubuntu 上使用 python
我正在尝试转换从 mssql 生成的文件到 utf-8。当我打开他的输出 mssql在 Windows Server 2003 中使用 notepad++ 将文件识别为 UCS-2LE我使用 file
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我正在尝试执行单击以打开/关闭一个 div 的功能。 这是基本的,但是,点击只显示 div,当我点击“关闭”时,没有任何反应。 $(".inscricao-email").click(function
假设我有 2 张卡片,屏幕上一次显示一张。我有一个按钮可以用其他卡片替换当前卡片。现在假设卡 1 上有一些数据,卡 2 上有一些数据,我不想破坏它们每个上的数据,或者我不想再次重建它们中的任何一个。
我正在使用 Eloquent Javascript 学习 Javascript。 我在 Firefox 控制台上编写了以下代码,但它返回:“ReferenceError:show() 未定义”为什么?
我正在使用 Symfony2 开发一个 web 项目,我使用 Sonata Admin 作为管理面板,一切正常,但我想要做的是,在 Sonata Admin 的仪表板菜单上,我需要显示隐藏一些菜单取决
我试图显示一个div,具体取决于从下拉列表中选择的内容。例如,如果用户从列表中选择“现金”显示现金div或用户从列表中选择“检查”显示现金div 我整理了样本,但样本不完整,需要接线 http://j
我是一名优秀的程序员,十分优秀!