Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 未触发tableView(u0:commit:forRowAt:)_Ios_Swift_Tableview_Swipe - Fatal编程技术网

Ios 未触发tableView(u0:commit:forRowAt:)

Ios 未触发tableView(u0:commit:forRowAt:),ios,swift,tableview,swipe,Ios,Swift,Tableview,Swipe,这个类应该触发从右到左滑动到表视图单元格的滑动或滑动操作,这将允许我根据方法tableView(uu:commit:forRowAt:)进行删除,但是它没有被触发,我不知道为什么 代码类别: 导入UIKit 导入CoreData 类ViewController:UIViewController{ //标记:-核心数据属性 var数据控制器:数据控制器! var fetchedResultsController:NSFetchedResultsController! //标记:-属性和变量 让ga

这个类应该触发从右到左滑动到表视图单元格的滑动或滑动操作,这将允许我根据方法
tableView(uu:commit:forRowAt:)
进行删除,但是它没有被触发,我不知道为什么

代码类别:

导入UIKit
导入CoreData
类ViewController:UIViewController{
//标记:-核心数据属性
var数据控制器:数据控制器!
var fetchedResultsController:NSFetchedResultsController!
//标记:-属性和变量
让garmentCellID=“garmentCellID”
让segmentedControl=UISegmentedControl(项:[“Alpha”,“创建时间”])
让tableView=UITableView(帧:.0,样式:.plain)
//MARK:-Init
重写func viewDidLoad(){
super.viewDidLoad()
view.backgroundColor=.white
view.isUserInteractionEnabled=true
//首先使用导航栏的功能设置导航栏
设置导航栏()
setupSegmentedControl()
setupTableView()
setUpFetchedResultsController()
}
覆盖函数视图将出现(uo动画:Bool){
超级。视图将显示(动画)
setUpFetchedResultsController()
如果让indexPath=tableView.indexPathForSelectedRow{
取消选择行(at:indexPath,动画:false)
tableView.reloadRows(位于:[indepath],带:.fade)
}
}
//自动表格视图高度适合其内容
重写func viewdilayoutsubviews(){
super.viewDidLayoutSubviews()
//初始化tableView,并根据其内容自动调整其高度
tableView.frame=CGRect(x:tableView.frame.origin.x,y:tableView.frame.origin.y,宽度:tableView.frame.size.width,高度:tableView.contentSize.height)
//使用所需的实际高度更新表格
tableView.reloadData()
}
覆盖函数视图将消失(u动画:Bool){
超级。视图将消失(动画)
fetchedResultsController=nil
}
fileprivate func settingUpNavBar(){
让pluNavBarBtn=UIBarButtonItem(barButtonSystemItem:.add,target:self,action:#选择器(handleAdd))
navigationItem.setRightBarButton(pluNavBarBtn,动画:true)
navigationItem.title=“列表”
}
fileprivate func setupSegmentedControl()文件{
//第二次设置第二个视图,完成。
//第三:设置段
segmentedControl.addTarget(self,action:#选择器(handleSegmentChange),for:.valueChanged)
view.addSubview(分段控件)
segmentedControl.setUpAnchor(顶部:view.topAnchor,左侧:view.leftAnchor,底部:nil,右侧:view.rightAnchor,顶部添加:100,左侧填充:10,底部填充:0,右侧填充:10,宽度:0,高度:40)
}
//MARK:-表格视图设置
fileprivate func setupTableView(){
tableView.delegate=self
tableView.dataSource=self
tableView.alwaysBounceVertical=true
tableView.register(GarmentCell.self,forCellReuseIdentifier:garmentCellID)
view.addSubview(tableView)
tableView.setUpAnchor(顶部:segmentedControl.bottomAnchor,左侧:view.leftAnchor,底部:view.bottomAnchor,右侧:view.rightAnchor,顶部添加:10,左侧填充:0,底部填充:0,右侧填充:0,宽度:0,高度:0)
}
fileprivate func setUpFetchedResultsController(){
//重用代码以使用fetchedResultsController
//NSFetchRequest是一种泛型类型,这就是为什么,我们指定Garment,以便它可以处理特定的托管对象子类。在=之后,它将返回一个使用该实体初始化的获取请求。
让fetchRquest:NSFetchRequest=Garment.fetchRequest()
//排序规则:从最新到最旧
//使用描述符类似于SQL:ORDER by
让sortDescriptor=NSSortDescriptor(键:“名称”,升序:false)
fetchRquest.sortDescriptors=[sortDescriptor]
//重用代码结束
//正在启动resultsFetchedController的初始化器
fetchedResultsController=NSFetchedResultsController(fetchRequest:fetchRquest,managedObjectContext:dataController.viewContext,sectionNameKeyPath:nil,cacheName:“cach”)
fetchedResultsController.delegate=self
做{
//这个抛出,所以我们把它包装成一个do-catch块
请尝试fetchedResultsController.performFetch()
}抓住{
fatalError(“无法执行提取:\(error.localizedDescription)”)
}
}
//标记:-选择器
@objc func handleSegmentChange(){
打印(“段”)
//数据持久性调用
}
@objc func handleAdd(){
打印(“加btn”)
设addVC=AddController()
让nav2=UINavigationController(rootViewController:addVC)
导航控制器?.present(导航2,动画:true,完成:nil)
}
///删除指定索引路径处的服装
func deleteGarment(在indexPath:indexPath处){
让garmentToDelete=fetchedResultsController.object(位于:indexPath)
dataController.viewContext.delete(garmentToDelete)
试试?dataController.viewContext.save()
}
}
扩展视图控制器:UITableViewDelegate,UITableViewDataSource{
func tableView(tableView:UITableView,numberofrowsinssection:Int)->Int{
返回fetchedResultsController.sections?[section].numberOfObjects±0
}
func tableView(tableView:UITableView,cellForRowAt indexath:indexPath)->UITableViewCell{
让aGarment=fetchedResultsController.object(位于:indexPath)
//Automatic TableView height fit to its content
override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    
    //Initialize the tableView with automatic fit for its height based on its content
    tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.contentSize.height)
    
    //Update the table with the actual height needed
    tableView.reloadData()
}