Ios TableView单元格选择事件未触发
我在Ios TableView单元格选择事件未触发,ios,swift,uitableview,Ios,Swift,Uitableview,我在XIB文件中创建了一个组件。该文件包括2个组件 标签 桌面视图 然后我链接并将它的文件所有者类设置为SampleView。我随附了带有SampleView.swift文件的XIB文件视图,该文件在其类中只有以下代码: @IBOutlet var view: UIView! 我现在已经创建了一个控制器文件SampleController,其中包含协议UIViewController、UITableViewDelegate和UITableViewDataSource。我将以下代码放在它的ini
XIB
文件中创建了一个组件。该文件包括2个组件
文件所有者
类设置为SampleView
。我随附了带有SampleView.swift文件的XIB文件视图
,该文件在其类中只有以下代码:
@IBOutlet var view: UIView!
我现在已经创建了一个控制器文件SampleController
,其中包含协议UIViewController
、UITableViewDelegate
和UITableViewDataSource
。我将以下代码放在它的init()
func中以显示自定义组件:
init() {
super.init(nibName: nil, bundle: nil)
modalPresentationStyle = UIModalPresentationStyle.Custom
view.addSubview(SampleView())
}
我使用这个SampleController
以编程方式显示为模式
这些代码显示为显示标签和表格视图的模式。它还填充TableView中的数据。问题是:
当我点击表中的单元格时,它不会在第一次尝试时触发事件。当我点击另一个单元格时,它会触发上一个单元格事件。
知道为什么会这样吗
以下是用于填充和处理单元格抽头的两个函数:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("CELL")
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "CELL")
}
cell!.textLabel?.text = sampleData[indexPath.row]["title"]
return cell
}
func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
print("tapped")
}
您需要使用不同的方法将单元格出列:
var cell = tableView.dequeueReusableCellWithIdentifier("CELL", forIndexPath: indexPath)
顺便说一句,无需检查nil单元格。该死!我使用的是didSelectRowAtIndexPath
而不是didSelectRowAtIndexPath
。这就是午夜后编程时会发生的情况。类似于电池重复使用的问题。您是否实现了所需的UITableViewDataSource
方法?如果是这样,你能在你的问题中发布它们吗?@Koen我提到过我在SampleController
文件中使用了UIViewController、UITableViewDataSource和UITableViewDelegate。数据填充也很好,但点击第二个单元格后会触发点击事件。好的,那么您的单元格中有什么用于RowatineXpath
和didselectRowatineXpath
函数?@Koen我用两个函数更新了问题。该死!我使用的是didSelectRowAtIndexPath
而不是didSelectRowAtIndexPath
。这就是午夜后编程时会发生的情况。我现在收到了此错误:无法将具有标识符单元格的单元格出列-必须为标识符注册nib或类,或者在故事板中连接原型单元格
是的,您必须修复此错误。搜索SO,您会发现许多类似的问题。当您必须创建动态单元格并使用UITableView
而不是UITableViewController
时,这不是必需的。这是一个常见的错误。看看这篇文章的投票数