iOS:我的 ViewController 在选项卡栏中包含一个 TableView 的问题显示为黑色或显示的大小不正确

iOS: Problem with my ViewController containing a TableView in a Tab Bar that is displaying in black or with the size bad displayed

我有一个带有一些视图控制器的标签栏,其中一个控制器包含一个 TableView。我的问题是它有 90% 的时间显示为黑色。 可能它与我认为的约束、大小有关,因为如果我触摸约束、大小、框架原点,有时它不是黑色的。

无法避免黑屏,并且 tableview 显示良好,尺寸合适,位置合适。这非常令人沮丧,因为除包含表视图的视图外,所有其他 4 viewcontrollers 都在工作。

故事板viewcontroller:

viewController 在没有约束的模拟器上:

带有约束的模拟器上的 viewControlelr(无论我做什么更改,它都无法正确显示。按钮消失了,标签也消失了)。

我尝试了这张票中的解决方案但没有成功:

self.definesPresentationContext = true  



Link 3

(我准确地说我正在尝试找到解决方案,而不是在 tabBar 之后添加大量导航控制器或更改标签栏方法本身)

有什么建议吗?

编辑:这里是所有约束:

您应该为标签栏的每个视图控制器使用 navigationController,因为它是情节提要中的一个错误,直到今天才得到解决

1/ 在tabbarviewcontroller的每个视图中放入行self.definesPresentationContext = true

2 / Editor/Embed/NavigationController 用于 tabBarViewController 的每个视图

3 / 为 TabBarViewController 的所有视图控制器的每个导航控制器删除 "Show Navigation Bar "

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,然后重新启动它