ios - 无法选择或打印搜索栏过滤数组

标签 ios swift uitableview

我有 3 个按钮可以通过搜索从 tableview 中选择 3 个项目。 一切正常,直到我搜索并选择一行。

当我选择 row..it 打印“nothing selected”,我将其包含在 switch 语句 default 的代码中。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if isSearching == true{

        tableData = filteredArray

        switch filteredArray {

        case signUser.countries:
            signUser.country = tableData[indexPath.row]
            self.btnCountry.titleLabel?.text = signUser.country
            print(signUser.country)

        case signUser.dawatTitles:
            signUser.dawatName = tableData[indexPath.row]
            self.btnDawat.titleLabel?.text = signUser.dawatName

        case signUser.nationalities:
            signUser.nationality = tableData[indexPath.row]
            self.btnNationality.titleLabel?.text = signUser.nationality

        default:
            print("nothing selected")
        }
    }
    else if isSearching == false{

        tableData = unfilteredArray

        switch unfilteredArray{

        case signUser.countries:
            signUser.country = tableData[indexPath.row]
            print(signUser.country)

        case signUser.dawatTitles:
            signUser.dawatName = tableData[indexPath.row]
            print(signUser.dawatName)

        case signUser.nationalities:
            signUser.nationality = tableData[indexPath.row]
            print(signUser.nationality)

        default:
            print("dsds")
        }
    }
}

当我搜索并选择国家或任何项目时..它应该打印选定的国家或行。

不用搜索也能用

最佳答案

你有你的按钮操作(我在你编辑问题之前看到了这个):

        self.unfilteredArray = signUser.dawatTitles
// ...
        self.unfilteredArray = signUser.countries
//...
        self.unfilteredArray = signUser.nationalities

并且在从 TableView 切换时基本上选择了你

//...
        switch filteredArray {
        case signUser.countries: 
//...
// is the filteredArray the signUser.countries ?
// well … never because you never assing them

解决方案:

将按钮的选择保持在可变状态

有点像:

enum Options { 
  case dawatTitles
  case countries
  case nationalities
}


var lastSelection: Options? 

/// ... when a button is pressed 
lastSelection = Options.nationalities //for example


and in the table view did select 


    switch lastSelection {
    case countries: 
 //  is searching ... bla bla

不过...您的代码中似乎还有其他可以改进的地方。

关于ios - 无法选择或打印搜索栏过滤数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55917780/

相关文章:

iOS swift 3 : Custom UIButton using xib

ios - 如何加速识别单击而不是双击?

swift 将 'Character' 转换为 'Unicode.Scalar'

iphone - UITableView 上的触摸事件?

ios - 如何区分UITableView自定义section点击和section第一行点击?

ios - '-[__NSArrayM _fastCStringContents :]: unrecognized selector sent to instance

iphone - 在 iPhone 中处理 iAd?

ios - 为什么 iPhone 6 及更高版本 wkwebview 不接受底部点击?

ios - 编辑时 UITextView 光标完全消失

swift - SwiftUI 中 State 和 StateObject 有什么区别?