选择 Table 视图行时遇到问题
Trouble Selecting Table View Rows
我在选择 didSelectRowAt
/didSelectRowAtIndexPath
中的 table 视图行时遇到问题。该函数从未被调用。
func tableView(tableView: UITableView, didSelectRowAt indexPath: NSIndexPath) {
print("Row: ", indexPath.row)
if(indexPath.row == 9)
{
print("Row 9 Selected")
}
}
根据各种 Stack Overflow 文章,这是我尝试过的:
- 我试过“didSelectRowAt”和“didSelectRowAtIndexPath”
- 我已经使用 table 视图的出口将其委托设置为自身
- Table 查看设置:
-选择:单选
-编辑:编辑过程中没有选择
-交互:启用用户交互
- 单个单元格设置:
-交互:启用用户交互
- 我在代码和故事板中将 tableview.allowsInteraction 设置为 true
应该与 _
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
勾选Docs
问题是我使用的是 NSIndexPath 而不是 IndexPath
使用断点检查委托值是否为 nil
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Code
}
您必须将 @IBOutlet 设置到您 ViewController 中的 tableView 并设置为委托和数据源。
像这样:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
}
并且也实现了 UITableViewDataSource 协议。
或者您也可以在 Interface Builder 中设置 ViewController 作为委托和数据源,避免在上面的代码中手动设置。
如果您的代码中有多个 tableView,请尝试为每个 tableView 指定不同的名称,然后调用具有特定 tableView 名称的委托。
另外你在这里提到了第3点“单选-编辑:编辑过程中没有选择”。这意味着如果您尝试在 tableView 中编辑任何内容,则不会有任何选择,请尝试替换它,然后检查您是否得到一些结果。
因为如果设置“tableView.allowsSelectionDuringEditing = false”,那么它将不允许您在 tableView 中进行选择。
我在选择 didSelectRowAt
/didSelectRowAtIndexPath
中的 table 视图行时遇到问题。该函数从未被调用。
func tableView(tableView: UITableView, didSelectRowAt indexPath: NSIndexPath) {
print("Row: ", indexPath.row)
if(indexPath.row == 9)
{
print("Row 9 Selected")
}
}
根据各种 Stack Overflow 文章,这是我尝试过的:
- 我试过“didSelectRowAt”和“didSelectRowAtIndexPath”
- 我已经使用 table 视图的出口将其委托设置为自身
- Table 查看设置: -选择:单选 -编辑:编辑过程中没有选择 -交互:启用用户交互
- 单个单元格设置: -交互:启用用户交互
- 我在代码和故事板中将 tableview.allowsInteraction 设置为 true
应该与 _
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
勾选Docs
问题是我使用的是 NSIndexPath 而不是 IndexPath
使用断点检查委托值是否为 nil
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// Code
}
您必须将 @IBOutlet 设置到您 ViewController 中的 tableView 并设置为委托和数据源。 像这样:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
}
并且也实现了 UITableViewDataSource 协议。 或者您也可以在 Interface Builder 中设置 ViewController 作为委托和数据源,避免在上面的代码中手动设置。
如果您的代码中有多个 tableView,请尝试为每个 tableView 指定不同的名称,然后调用具有特定 tableView 名称的委托。
另外你在这里提到了第3点“单选-编辑:编辑过程中没有选择”。这意味着如果您尝试在 tableView 中编辑任何内容,则不会有任何选择,请尝试替换它,然后检查您是否得到一些结果。 因为如果设置“tableView.allowsSelectionDuringEditing = false”,那么它将不允许您在 tableView 中进行选择。