UITableView полностью исчезает после закрытия дочернего контроллера представления - PullRequest
0 голосов
/ 08 ноября 2019

Я создаю приложение «Контакты», чтобы попрактиковаться в использовании программного интерфейса.

Изображение RootTableViewController:

enter image description here

У меня естькнопка addNewContact в правом верхнем углу. Я могу нажать эту кнопку, чтобы перейти к контроллеру представления с формой, заполнить форму, отправить и отклонить контроллер представления, и tableView обновится без проблем.

Однако, если я сначала выберу строку (вызывая didSelectRowAt), отклоняет отображаемое представление и , а затем нажмите кнопку addNewContact, tableView исчезнет. Он исчезает, в частности, когда появляется вид из кнопки addNewContact, а НЕ когда я закрываю вид.

Ниже приводится ошибка, которая выводится на печать:

Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. 
(
    "<NSLayoutConstraint:0x600000ddab70 cellStackView.leading == UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'.leading   (active, names: cellStackView:0x7fefba71b600 )>",
    "<NSLayoutConstraint:0x600000ddac10 UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'.trailing == cellStackView.trailing   (active, names: cellStackView:0x7fefba71b600 )>",
    "<NSLayoutConstraint:0x600000d94cd0 'UIView-Encapsulated-Layout-Width' UITableViewCellContentView:0x7fefba713b50.width == 0   (active)>",
    "<NSLayoutConstraint:0x600000dd8280 'UIView-leftMargin-guide-constraint' H:|-(16)-[UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':UITableViewCellContentView:0x7fefba713b50 )>",
    "<NSLayoutConstraint:0x600000dd98b0 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x600001791880'UIViewLayoutMarginsGuide']-(16)-|(LTR)   (active, names: '|':UITableViewCellContentView:0x7fefba713b50 )>"
)

Я полагаю, что ошибка находится в третьем ограничениигде 'UIView-Encapsulated-Layout-Width' UITableViewCellContentView: 0x7fefba713b50.width == 0 .

Я перепробовал многие из предложенных мной советов, например, явную настройку размера представления контента или понижение приоритета ограничений contentView. Я также попытался удалить ограничение stackView.trailingAnchor, чтобы ширина stackView соответствовала внутреннему размеру содержимого. Когда я сделал все это, ошибки перестали печатать в журнале, но проблема исчезающего tableView осталась.

Возможно, уместно: Ячейки ячеек tableView являются пользовательскими. Пользовательские ячейки размещаются в своем собственном классе. Это просто пара меток в stackView. Параметр stackView ограничен начальным, конечным, верхним и нижним краями contentView.layoutMarginsGuide.

Код можно найти здесь . Это не долго читать. Проблемы должны находиться в пределах ContactTableViewCell и RootTableViewController.

Буду признателен за любые рекомендации по этому вопросу!

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