Проблема с разметкой подробно ViewController внутри UISplitViewController - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь UISplitViewController в моем приложении в первый раз. Я делаю все программно, поэтому я не использую раскадровки. При запуске в SceneDelegate я создаю свой splitViewController с мастер-контроллерами и контроллерами деталей.

let detailVC = DetailsTableVC()
let masterVC = masterVC()
masterVC.delegate = detailVC

// Split view controller
let splitViewController = UISplitViewController()
splitViewController.viewControllers = [UINavigationController(rootViewController: masterVC), UINavigationController(rootViewController: detailVC)]
splitViewController.preferredDisplayMode = .allVisible
splitViewController.delegate = masterVC

Класс подробного представления - UITableViewController, и у меня есть 2 типа ячеек. Все работает отлично, и я обновляю свой detailItem через делегата. Когда я поворачиваю экран на iPhone 8 плюс или любой другой iPhone с альбомной ориентацией, это дает мне эту ошибку. (Это происходит только один раз, например, если повернуть устройство несколько раз, ошибка появится только один раз)

[TableView] Только предупреждение только один раз: UITableView было приказано расположить его видимые ячейки и другое содержимое, не находясь в иерархия представления (табличное представление или одно из его суперпредставлений не было добавлено к окну). Это может привести к ошибкам, заставляя представления внутри табличного представления загружаться и выполнять компоновку без точной информации (например, границ табличного представления, сбора признаков, полей макета, вставок в безопасной области и т. Д. c), а также приведет к ненужным потерям производительности из-за дополнительные макеты проходит. Создайте символьную c точку останова в UITableViewAlertForLayoutOutsideViewHierarchy, чтобы перехватить это в отладчике и посмотреть, что вызвало это, чтобы вы могли вообще избежать этого действия, если это возможно, или отложить его, пока представление таблицы не будет добавлено в окно. Вид таблицы:; анимации = {позиция =; bounds.origin =; bounds.size =; bounds.origin-2 =; bounds.size-2 =; }; слой =; contentOffset: {0, -64}; contentSize: {93.666666666666657, 124.49999999999999}; AdjustContentInset: {64, 0, 0, 0}; Источник данных: DetailsTableV C: 0x105612130 >>

Я все делаю правильно? Как я могу удалить эту ошибку?

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