iOS: проблема с моим ViewController, содержащим TableView в панели вкладок, который отображается черным цветом или отображается с плохим размером - PullRequest
1 голос
/ 13 января 2020

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

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

Раскадровка viewcontroller:
StoryBoard options

viewController на симуляторе без ограничений:
ViewController on simulator without constraints

viewControlelr на симуляторе с ограничениями (независимо от того, какие изменения я делаю, они отображаются неправильно. Кнопки исчезают, метка тоже). ViewController with constraints

Я пробовал решения в этих билетах безуспешно:

self.definesPresentationContext = true  

Ссылка 1
Ссылка 2
Ссылка 3

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

Есть предложения?

РЕДАКТИРОВАТЬ : Вот все ограничения:
Constraints

1 Ответ

1 голос
/ 14 января 2020

Вам следует использовать navigationController для каждого контроллера представления на панели вкладок, поскольку это ошибка в раскадровке, которая не была устранена до сегодняшнего дня

1 / Поместите строку self.definesPresentationContext = true в каждом представление tabbarviewcontroller

2 / Editor / Embed / NavigationController для каждого представления tabBarViewController

3 / Удалите «Показать панель навигации» для каждого контроллера навигации всех контроллеров представления TabBarViewController

4 / Вместо

let vc = self.tabBarController!.viewControllers![1] as! YourViewController

Поставьте эту строку:

        let nc = self.tabBarController!.viewControllers![1] as! UINavigationController
        let vc: YourViewController = nc.viewControllers[0] as! YourViewController

5 / решите все проблемы, связанные с содержимым (красным и желтым в раскадровке)

6 / Удалите приложение перед компиляцией на симуляторе или устройстве

7 / Перед компиляцией сделайте полную очистку (Cmd + option + Shift + k)

8 / необязательно: в некоторых случаях закройте XCode и перезапустите его

...