Push segue正在搞乱约束

时间:2014-06-03 16:08:17

标签: ios objective-c uitabbarcontroller uistoryboardsegue

我有一个从我家UIViewControllerUITabBarController的推送信号。我需要使用push segue,因为我需要顶部的导航栏,我无法在导航控制器中嵌入UITabBarController

当我预先形成初始segue时,它会转到UITabBarController,然后在导航栏下方和我的内容上方创建一个小边距。当我切换标签时,即使我切换回初始标签页,也会删除此填充。然后,当我使用Push Segue的后退按钮时,我的根视图控制器会丢失一些约束:我在这里有一个collectionView,它在页面上的某些按钮下面向上推。 Description of problem

曾经有一个奇怪的按钮移位,然后现在他们不动,因为我修复了约束。但是,CollectionView的限制似乎很好。

constraints

看起来似乎更像是CollectionView中的项目正在向上移动,而不是CollectionView本身。这可能吗?我能解决这个问题吗?

当我切换到Modal segue而不是push时,不会发生这种情况。 关于如何解决这个奇怪问题的任何建议?或者有人可以提出一个很好的方法来让我的TabViewController使用Modal segue吗?

谢谢!

1 个答案:

答案 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以填充空间。