Как выделить ячейку в разделе aTableView в swift - PullRequest
0 голосов
/ 23 мая 2019

Я работаю с разделами в виде таблицы в раскадровке, где выбор ячейки в разделе выведет меня на другой экран. Мне удалось это сделать, но я чувствую, что использую слишком много кода и должен найти лучший способ его разработки, я видел похожие публикации, где они пытаются сделать то же самое, здесь Я нашел этот ответ

Изменится ли количество разделов и элементов в разделе? Если нет, то создание статических ячеек и подключение каждой ячейки к другому месту назначения может быть выполнено без кода (все в Интерфейсном Разработчике).

это именно то, что происходит в моем случае, и мне было бы интересно сделать эту форму. У меня есть фиксированные данные, которые не изменятся. Сейчас я пытаюсь разработать эту функцию наилучшим образом, а не так, как сейчас. Я должен подчеркнуть, что я новичок в разработке со Swift.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        switch indexPath.section {
        case 0:
            switch indexPath.row{
            case 0:
                self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
                break
            case 1:
                break
            case 2:
                break
            default:
                break
            }
            break

        case 1:
            switch indexPath.row{
            case 0:
                break
            case 1:
                break
            case 2:
                break
            default:
                break
            }
            break

        case 2:
            break

        case 3:

            break

        default:
            break
        }
    }

cellForRow:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell : UITableViewCell = UITableViewCell(style: UITableViewCell.CellStyle.subtitle, reuseIdentifier: "item_option")
        cell.textLabel?.text = options[indexPath.section][indexPath.row]
        cell.imageView?.image = UIImage(named: "icon-myprofile")
        cell.textLabel?.font = cell.textLabel?.font.withSize(14)
        return cell
    }

Ответы [ 3 ]

0 голосов
/ 23 мая 2019

Я думаю, что вы можете сделать это, используя раскадровку следующим образом:

enter image description here

Начните с добавления контроллеров представления и ячеек в UITableView, иустановите параметр содержимого TableView на Static Cells в верхнем правом углу.После этого просто добавьте segues:

enter image description here

0 голосов
/ 23 мая 2019

Используйте оператор switch, если у вас multiple cases для обработки.

Но, как видно из вашего кода, вы обрабатываете только single condition. В этом случае я не вижу необходимости использовать switch statement.

Вы могли бы легко использовать простой if statement, чтобы заставить это работать.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if indexPath.section == 0 && indexPath.row == 0  {
        self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
    }
}
0 голосов
/ 23 мая 2019

Вы можете сократить этот гигант switch до

switch (indexPath.section, indexPath.row) {
    case (0,0):
        self.performSegue(withIdentifier: "goToCreateAccountViewController", sender: nil)
    default:
        break
}
...