我有一個ViewController與tableview和一個單獨的筆尖創建表視圖單元格,該單元格包含一個textview。 按添加按鈕,然後tableview將創建一個新的單元格,所以我可以輸入文本到textView。 我想每次插入單元格到第一行,不管存在多少個單元格。 最後,按完成按鈕將文本保存到coredata。如何通過添加按鈕添加一個新的單元格,並將文本保存到Coredata
的廈門國際銀行實體名稱爲「清單」中,廈門國際銀行文件名是「ChecklistCell」
class ChecklistViewController:
class ChecklistViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
var items = [Checklist]()
var cellTextView:ChecklistCell!
@IBOutlet weak var tableView: UITableView!
@IBOutlet var toolBar: UIToolbar!
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
struct TableViewCellIdentifiers{
static let checklistCell = "ChecklistCell"
}
@IBAction func addItem(){
//i don't know how to write this code
}
@IBAction func toolBarDoneButton(_ sender: UIBarButtonItem) {
//write data to coredata
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
let item = Checklist(context: context)
item.textView = cellTextView.textView.text
(UIApplication.shared.delegate as! AppDelegate).saveContext()
}
override func viewDidLoad() {
super.viewDidLoad()
let cellNib = UINib(nibName: "ChecklistCell", bundle: nil)
tableView.register(cellNib, forCellReuseIdentifier: "ChecklistCell")
}
override func viewWillAppear(_ animated: Bool) {
getData()
tableView.reloadData()
}
func getData(){
do {
items = try context.fetch(Checklist.fetchRequest())
} catch {
print("Fetching Failed")
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: TableViewCellIdentifiers.checklistCell, for: indexPath) as! ChecklistCell
let item = items[indexPath.row]
if let myItem = item.textView {
cell.textView.text = myItem
}
cell.textView.inputAccessoryView = toolBar
return cell
}
}
核心數據Swift的所有操作:https://iosdevcenters.blogspot.com/2016/06/crud-operations-using-code-data-swift.html –