我有一个从我家UIViewController
到UITabBarController
的推送信号。我需要使用push segue,因为我需要顶部的导航栏,我无法在导航控制器中嵌入UITabBarController
。
当我预先形成初始segue时,它会转到UITabBarController
,然后在导航栏下方和我的内容上方创建一个小边距。当我切换标签时,即使我切换回初始标签页,也会删除此填充。然后,当我使用Push Segue的后退按钮时,我的根视图控制器会丢失一些约束:我在这里有一个collectionView,它在页面上的某些按钮下面向上推。
曾经有一个奇怪的按钮移位,然后现在他们不动,因为我修复了约束。但是,CollectionView
的限制似乎很好。
看起来似乎更像是CollectionView中的项目正在向上移动,而不是CollectionView本身。这可能吗?我能解决这个问题吗?
当我切换到Modal segue而不是push时,不会发生这种情况。 关于如何解决这个奇怪问题的任何建议?或者有人可以提出一个很好的方法来让我的TabViewController使用Modal segue吗?
谢谢!
答案 0 :(得分:0)
我最后通过修改Lord Zsolt的答案来解决这个问题。
- (void)viewDidLayoutSubviews {
if (self.searchBar.frame.origin.y == 20) {
[self.searchBar setFrame:CGRectMake(0, 0, self.searchBar.frame.size.width, self.searchBar.frame.size.height)];
[self.ptasksTable setFrame:CGRectMake(0, 44, self.ptasksTable.frame.size.width, self.ptasksTable.frame.size.height+20)];
}
}
我正在检查我视图中第一个项目的来源是y=20
,如果是,请将y原点设置为0并将下面TableView
的大小增加20以填充空间。