我正在创建一个表视图,我想创建一个函数,您可以通过向右滑动并点击删除按钮来删除行。我和我的老师已经尝试了大约半个小时来解决这个问题,但似乎没有任何效果。
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var StoredValues = Values()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {//
super.didReceiveMemoryWarning()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
return UITableViewCell()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "meunSegue", sender: self)
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
_ = segue.destination as! SecondViewController
}
}
func tableView->(UITableView *)tableView canEditRowsAtIndexPath:(NSIndexPath *)indexPath {
return YES
}
- (void)tableView:(UITableView *)tableView committEditStyle: (UITableViewCellEditingStyle)
func tableView {
var cell = UITableView.self
var Animation = UITableViewRowAnimation(rawValue: 1)
if editingStyle == UITableViewCellEditingStyle.delete {
cell.deleteRows(indexPath)
//cell.deleteRows(at: [NSIndexPath], with: UITableViewRowAnimation.automatic)
}
}
class SecondViewController: UIViewController {
var recievedData = ""
override func viewDidLoad() {
super.viewDidLoad()
print(recievedData)
}
}
}
答案 0 :(得分:0)
这是因为您的numberOfRowsInSection
数据源实现始终返回1(已修复)。
通常,您将对象存储在数组中,该数组定义行数。并且,commitEditingStyle
应该从数组中删除对象,然后删除该行。
– (void)tableView: (UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath: (NSIndexPath *)indexPath {if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[maTheData removeObjectAtIndex:[indexPath row]];
// Delete row using the cool literal version of [NSArray arrayWithObject:indexPath]
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
请按照此link了解详情。
答案 1 :(得分:0)
此快速功能可以通过向右滑动并点击删除按钮来删除行。实际上这个函数从items数组中删除项目然后删除行。此外,此行已从tableView
中删除。
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCellEditingStyle.delete {
// your items include cell variables
items.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
}
}