【发布时间】:2020-08-11 08:55:27
【问题描述】:
如何存储添加到 tableView 中的数据,在应用关闭并再次加载后我可以访问和删除这些数据?
我的应用程序基本上有一个联系人部分,您可以在应用程序中添加新联系人,有点像 Instagram 关注的离线版本。我希望用户能够在他们的设备上建立新联系人并将新联系人保存到他们的设备上,以便他们和应用可以随时访问此信息。
我想知道如何在将表格项添加到表格后保存数据我知道如何将数据添加到下面的 tableView 中。
如何将数据添加到我的 tableView:
@IBAction func done(segue:UIStoryboardSegue) {
let newContact = segue.source as! NewContactViewController
FirstName = newContact.firstName
LastName = newContact.lastName
print("Adding the name: " + FirstName + " " + LastName + " to the nameArry")
nameArry.append(FirstName + " " + LastName)
print("Added " + nameArry[nameArry.count - 1] + " to name array")
contacts.append(Contacts(MyContact: nameArry[nameArry.count - 1], Me: ""))
let indexPath = IndexPath(row: myContact.count + contacts.count - 1, section: 0)
tableView.beginUpdates()
tableView.insertRows(at: [indexPath], with: .automatic)
tableView.endUpdates()
newContact.firstName = ""
newContact.lastName = ""
view.endEditing(true)
}
我如何加载我的表格视图:
extension ContactsViewController: UITableViewDataSource, UITableViewDelegate {
// Get Number of items in table
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (myContact.count + contacts.count)
}
// Set custom hights for the diffrent rows
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0{
return 60.0
} else {
return 35.0
}
}
// Set the cells data
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row < myContact.count {
let myContactSchedule = myContact[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "MainUsersAccount") as!
ContactsLayout
cell.setMyContact(myContacts: myContactSchedule)
return cell
} else {
let contactsSchedule = contacts[indexPath.row - myContact.count]
let cell = tableView.dequeueReusableCell(withIdentifier: "UserItem") as!
ContactsLayout
cell.setContacts(contacts: contactsSchedule)
return cell
}
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let result = UIView()
// recreate insets from existing ones in the table view
let insets = tableView.separatorInset
let width = tableView.bounds.width - insets.left - insets.right
let sepFrame = CGRect(x: insets.left, y: -0.5, width: width, height: 0.5)
// create layer with separator, setting color
let sep = CALayer()
sep.frame = sepFrame
sep.backgroundColor = tableView.separatorColor?.cgColor
result.layer.addSublayer(sep)
return result
}
// Deselect Row
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
}
}
这可能是一个相当容易回答的问题,但我是制作应用程序的新手,似乎无法找到一种简单的方法来存储它。
感谢您的宝贵时间,我们将不胜感激。
【问题讨论】:
标签: swift save tableview xcode11 saving-data