Невозможно выбрать или напечатать фильтрованный массив панели поиска - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть 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")
        }
    }
}

, когда я ищу и выбираю страну или любой элемент. Она должна напечатать выбранную страну или строку.

работает без поиска

1 Ответ

1 голос
/ 30 апреля 2019

У вас на кнопке действия (я видел это до того, как вы отредактировали вопрос):

        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

Тем не менее ... похоже, есть и другие вещи, которые могут быть улучшены и в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...