如何通过NSUserDefaults将当前日期写入UITableView的单元格?

圣诞老人1

我希望用户NSUserDefaults通过单击按钮将当前日期(如dd.mm.yyyy)保存到,然后将其重新加载到另一个中,ViewController以将其显示为中的单元格UITableView但这是行不通的。我不知道如何正确安排日期,但这是我尝试的方法:

@IBAction func saveButtonTapped (sender:AnyObject){

    let userDefaults = NSUserDefaults.standardUserDefaults()

    if var timeList = userDefaults.objectForKey("timeList") as? [NSDate]
    {
        timeList.append(NSDate())
        userDefaults.setObject(timeList, forKey: "timeList")
    }
    else
    {
        userDefaults.setObject([NSDate()], forKey: "timeList")
    }
    userDefaults.synchronize()
}

...

 @IBOutlet weak var tableView: UITableView!

var time:NSMutableArray = NSMutableArray();

override func viewDidLoad() {
    super.viewDidLoad()

    var timecopy = NSMutableArray(array: time)

    var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()

    var timeListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("timeList") as? NSMutableArray

    if ((timeListFromUserDefaults) != nil){
        time = timeListFromUserDefaults!
    }
    self.tableView.reloadData()
}
马泰奥·皮昂博(Matteo Piombo)

妳去

class ViewController: UIViewController, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    let userDefaults = NSUserDefaults.standardUserDefaults()
    let timeListKey = "TimeList" // Key in user defaults

    var timeList: [NSDate] = [NSDate]() {
        didSet {
            userDefaults.setObject(self.timeList, forKey: timeListKey)
            self.tableView.reloadData()
        }
    }


    //MARK: Actions

    @IBAction func saveButtonTapped(sender: UIButton) {
        self.timeList.append(NSDate())
    }


    //MARK: TableView DataSource
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.timeList.count
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cellIdentifier = "TimeListCell"
        let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as UITableViewCell
        cell.textLabel?.text = "\(timeList[indexPath.row])"
        return cell
    }

    //MARK: View Lifecycle

    override func viewDidLoad() {
        super.viewDidLoad()
        // Get NSArray from userDefaults
        let timeListFromUserDefaults = userDefaults.objectForKey(timeListKey) as? NSArray
        // Check if it is an array of NSDate, else set timeList to empty array
        self.timeList = (timeListFromUserDefaults as? [NSDate]) ?? [NSDate]()
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以编程方式将单元格的值设置为当前日期

Excel-自动将当前日期/时间插入单元格

根据单元格值vba显示当前日期

根据当前日期在单元格中输入

如何使Excel单元格根据当前日期引用特定工作表?

如何在Google表格的单元格中显示默认的当前日期,在该单元格中使用数据验证来选择日期?

使用单个快捷方式将当前日期和时间(DATETIME函数)插入LibreOffice Calc中的单元格

根据更改的 GridView 单元格值将数据库表列更新为当前日期

将日期写入单元格并更改日期格式

如何使用 Python 将当前日期写入 Postgres?

跳转到当前日期单元格(日期在一行中) Google 表格

更改另一个单元格时,在单元格中输入当前日期

如何在 UITableView 单元格中显示当前时区

打开电子表格时,使用当前日期填充单元格VBA

当该行发生更改时,使用当前日期更新该行中的单元格

通过单击按钮将当前日期保存到NSUserDefaults中

如何根据当前系统日期复制单元格?

当新数据添加到另一个单元格时,如何自动填充当前日期?

如何将值写入不同的单元格

如何将单元格添加到uitableview

当在同一行、不同单元格中选择特定值时,Google 脚本仅在单元格中插入一次当前日期

通过Excel-DNA中的工具栏激活写入当前单元格

Google电子表格/文档,在Open上跳至当前日期单元格

VBA代码在下一个单元格中添加当前日期

如何从uitableview单元格中删除单元格

如何将单元格的输入解析为日期?

使用Shell脚本将当前日期/时间写入文件

通过脚本的单元格日期

如何阻止UITableView重用单元格?