Ios Push segue正在处理约束

Ios Push segue正在处理约束,ios,objective-c,uitabbarcontroller,uistoryboardsegue,Ios,Objective C,Uitabbarcontroller,Uistoryboardsegue,我有一个从我家UIViewController到uitabarcontroller的推送序列。我需要使用推送序列,因为我需要顶部的导航栏,而且我不能在导航控制器中嵌入UITabBarController 当我执行初始序列时,它会进入UITabBarController,然后在导航栏下方和我的内容上方创建一个小边距。切换选项卡时,即使切换回初始选项卡,也会删除此填充。然后,当我使用Push Segue的back按钮时,我的根视图控制器放松了一些约束:我这里有一个collectionView,它在页

我有一个从我家
UIViewController
uitabarcontroller
的推送序列。我需要使用推送序列,因为我需要顶部的导航栏,而且我不能在导航控制器中嵌入
UITabBarController

当我执行初始序列时,它会进入
UITabBarController
,然后在导航栏下方和我的内容上方创建一个小边距。切换选项卡时,即使切换回初始选项卡,也会删除此填充。然后,当我使用Push Segue的back按钮时,我的根视图控制器放松了一些约束:我这里有一个collectionView,它在页面上的一些按钮下面向上推。

以前按钮会有一个奇怪的变化,现在它们不动了,因为我修正了约束条件。但是,
CollectionView
上的约束似乎很好

看起来更像是CollectionView中的项目在向上移动,而不是CollectionView本身。这可能吗?我能修好这个吗

当我切换到模式序列而不是推送时,不会发生这种情况。 有没有关于如何解决这个奇怪问题的建议?或者有人能给我的TabViewController推荐一个好方法让模态segue工作吗


谢谢

我在这里修改了佐尔特勋爵的答案,最终解决了这个问题

- (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,并将下面
表格视图的大小增加20以填充空间