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

问题描述 投票:1回答:1

我有一个带有一些视图控制器的选项卡栏,并且其中一个控制器包含一个TableView。我的问题是它有90%的时间显示为黑色。可能是因为我认为它与约束条件,尺寸有关,因为如果我触摸约束条件,尺寸,框架原点,有时它不是黑色的。

避免黑屏,并且在适当位置以良好的尺寸很好地显示表格视图。这非常令人沮丧,因为除了包含tableview的视图之外,其他所有视图控制器都在其他4个视图控制器上工作。

故事板ViewController:StoryBoard options

在模拟器上的viewController不受限制:ViewController on simulator without constraints

viewControlelr在带有约束的模拟器上(无论我所做的更改如何,它都不会正确显示。按钮也会消失,标签也会消失)。ViewController with constraints

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

self.definesPresentationContext = true  

Link 1Link 2Link 3

(我想我正设法找到解决方案,在tabBar之后没有添加很多导航控制器,也没有更改标签栏方法本身)

有什么建议吗?

EDIT:这是所有约束:Constraints

ios swift xcode uitableview uistoryboard
1个回答
1
投票

您应该对选项卡栏的每个视图控制器使用navigationController,因为它是情节提要中的错误,直到今天仍未解决

1 /在tabbarviewcontroller的每个视图中将line self.definesPresentationContext = true放置在行中>>

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

3 /删除TabBarViewController的所有viewController的每个导航控制器的“ 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 +选项+ Shift + k)

8 /可选:在某些情况下,关闭XCode,然后重新启动它

© www.soinside.com 2019 - 2024. All rights reserved.