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



>我有 3 个按钮可以从带有搜索的表格视图中选择 3 个项目。在我搜索并选择一行之前,一切都运行良好。

当我选择行时。它打印"未选择任何内容",我将其包含在开关语句默认的代码中。

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

并且在从表视图切换时基本上选择了您

//...
        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

还。。。您的代码中似乎还有其他内容可以改进。

最新更新