在不同部分的索引处选择行

selectrow at index for different sections

我有一个包含两个部分的 table。我可以在索引处 select 行 - 但我无法区分各个部分。

table 是一个拉出菜单 - 仅在代码中创建。

selection 的委托方法是

func sideBarControlDidSelectRow(indexPath: NSIndexPath) {
    delegate?.sideBarDidSelectButtonAtIndex(indexPath.row)
    sectionis = indexPath.section
    NSLog("Index Path Section %d", indexPath.section)
}

这给了我控制台中的部分。

但是在视图控制器上我只有

func sideBarDidSelectButtonAtIndex(index: Int){
    switch(index) {
        etc.
    }
}

我需要做的是

func sideBarDidSelectButtonAtIndex(index: Int){
    if section == 0 {
        switch(index){
            etc.
        }
    }
}

但如果我尝试这样做,则二元运算符不能应用于类型部分的操作数

这一定是显而易见的事情,因为 tables 一直都有部分 - 但答案让我望而却步。

只需更新委托协议中方法 sideBarDidSelectButtonAtIndex 的声明以接受 NSIndexPath 值,更改:

func sideBarDidSelectButtonAtIndex(index: Int)

func sideBarDidSelectButtonAtIndex(indexPath: NSIndexPath)

那么你可以去掉这个方法

func sideBarControlDidSelectRow(indexPath: NSIndexPath) {
    delegate?.sideBarDidSelectButtonAtIndex(indexPath.row)
}

并将其调用替换为

delegate?.sideBarDidSelectButtonAtIndex(indexPath)

然后你将收到完整的 indexPath 并可以做你想做的事