我在XIB
文件中创建了一个组件。该文件包含2个组件
然后我将其File's Owner
类链接并设置为SampleView
。我已将XIB文件view
附加到SampleView.swift文件中,并且此文件在其类中只有以下代码:
@IBOutlet var view: UIView!
我现在已经创建了一个包含协议SampleController
,UIViewController
和UITableViewDelegate
的控制器文件UITableViewDataSource
。我在其init()
func中放置了以下代码以显示自定义组件:
init() {
super.init(nibName: nil, bundle: nil)
modalPresentationStyle = UIModalPresentationStyle.Custom
view.addSubview(SampleView())
}
我正在使用此SampleController
以编程方式显示为Modal
。
这些代码显示为显示Label和TableView的模态。它还填充TableView中的数据。问题是:
当我点击表格中的单元格时,它不会在第一次尝试时触发该事件。当我点击另一个单元格时,它会触发上一个单元格事件。
知道为什么会这样吗?
以下是用于填充和处理单元格点击的2个函数:
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")
}
答案 0 :(得分:2)
Darn it!我使用的是didDeselectRowAtIndexPath
而不是didSelectRowAtIndexPath
。那是在午夜之后编程时会发生什么。
答案 1 :(得分:0)
您需要使用其他方法将单元格出列:
Right single quotation mark character (’)
顺便说一下,检查零个单元格是不必要的。