Swift tableViewCell идет за ChildViewController

У меня возникла странная проблема -

У меня есть tableView с двумя разделами - по одной строке в каждом разделе.

В ячейку первого раздела я добавляю представление (с многочисленными текстовыми полями и представлениями выбора), которое извлекается из пользовательской среды.

В ячейку второго раздела я добавляю tableViewCell с простой кнопкой.

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

Вот код, который я использовал -

func numberOfSections(in tableView: UITableView) -> Int {
        return 2
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        switch indexPath.section {
        case 0:
            cell = self.tableView.dequeueReusableCell(withIdentifier: "AddressAndTelephoneCell", for: indexPath) as! AddressAndTelephoneTableViewCell

            if let myProfile = self.myProfileViewController {
                (cell as! AddressAndTelephoneTableViewCell).contentView.addSubview(myProfile.view)
            }

        case 1:
            cell = self.tableView.dequeueReusableCell(withIdentifier: "ManageDataButtonCell", for: indexPath) as! ManageDataButtonCell

        default:
            break
        }

        return cell
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        switch indexPath.section {
        case 0:
            if let isSectionCollapsed = isCollapsed {
                if isSectionCollapsed {
                    return 360
                }
                else {
                    return 720
                }
            }
            else {
                return 360
            }

        case 1:
            if let isSectionCollapsed = isCollapsed {
                if isSectionCollapsed {
                    return 44
                }
                else {
                    return 0
                }
            }
            else {
                return 44
            }

        default:
            return 44
        }
    }

Здесь все отлично. Единственная проблема заключается в том, что кнопка во втором разделе появляется только после того, как я прокручиваю свое табличное представление, пока не достигну этого раздела.

В "Иерархии просмотра" я видел, что кнопка во втором разделе скрывается за представлением, которое я добавил в первом разделе. И это выходит вперед только тогда, когда я перехожу ко второму разделу.

Я пытался с помощью bring(toFront: subView) а также layoutIfNeeded() - и аналогичные решения, которые я нашел в Stackru, но ничего не помогло.

Любая помощь -> решение или альтернативное решение / подход очень поможет.

0 ответов

Другие вопросы по тегам