如何在tableview单元格中显示UiDatePicker到标签

时间:2017-08-05 08:07:59

标签: ios swift uitableview core-data uidatepicker

我的项目是一个提醒列表,只有两个视图控制器(vc)。

第一个在tableview单元格上使用 Subtile 样式显示tableview。第二个vc有两个文本标签,日期选择器和保存按钮。

我的问题;

1)如何将时间仅发送到我在tableview单元格中创建的标签?
2)将日期选择器添加到 xcdatamodeld (核心数据)时,在属性类型是什么?我尝试过 Double ,但这没有用。

非常感谢您的支持。

import UIKit

class AddEventViewController: UIViewController {

    @IBOutlet weak var addReminderTextField: UITextField!
    @IBOutlet weak var addInformationTextField: UITextField!

    var datePicker: UIDatePicker!

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        self.navigationController?.navigationBar.isTranslucent = false

    }

    override func viewDidLoad() {
        super.viewDidLoad()

        datePicker = UIDatePicker()
        datePicker.center = view.center
        view.addSubview(datePicker)

    }

    @IBAction func cancelButtonTapped(_ sender: Any) {
    navigationController!.popViewController(animated: true)

    }

    @IBAction func saveButtonTapped(_ sender: Any) {

        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

        let task = Task(context: context)
        task.title = addReminderTextField.text!
        task.subtitle = addInformationTextField.text!



        (UIApplication.shared.delegate as! AppDelegate).saveContext()

    navigationController!.popViewController(animated: true)

    }
}

这是我的tableview代码......

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return tasks.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) 

        let task = tasks[indexPath.row]

        cell.textLabel?.text = task.title!
        cell.detailTextLabel?.text = task.subtitle

        return cell
    }

    func getTasks() {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

        do {
            tasks = try context.fetch(Task.fetchRequest())
        }
        catch {
            print("Fetching Failed")
        }
    }

    func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext

        if editingStyle == .delete {
            let task = tasks[indexPath.row]
            context.delete(task)
            (UIApplication.shared.delegate as! AppDelegate).saveContext()

            do {
                tasks = try context.fetch(Task.fetchRequest())
            }
            catch {
                print("Fetching Failed")

            }
        }
        tableView.reloadData()
    }

}

0 个答案:

没有答案