pushViewController导致autoLayout问题使用hidesBottomBarWhenPushed(iphone6)

时间:2014-12-03 08:21:06

标签: ios autolayout pushviewcontroller

我有FirstViewController TabBarControllerNavigationController (TabBarController> NavigationController> UIViewController)

当按UIButton上的firstViewController时,它会推送到SecondViewController

SecondViewController *vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"BVC"];

vc2.hidesBottomBarWhenPushed = YES;

[self.navigationController pushViewController:vc2 animated:YES];

SecondViewController的右下角有一个UILabel,带有约束 - (宽度相等,高度相等,TrailingSpaceToSuperView = 16,BottomSpaceToBottomLayoutGuide = 20)

结果在iphone4s(IOS7)上工作正常,但在iphone6(IOS8.1)上,UILabel将首先出现在右下角加上“BottomBar height”约1秒然后将更新为正确地方(BottomSpaceToBottomLayoutGuide = 20)

当我将pushViewController动画设置为NO时,UILabel会立即显示在正确的位置。

[self.navigationController pushViewController:vc2 animated:NO];

有人遇到同样的问题吗?

2 个答案:

答案 0 :(得分:6)

我已经解决了这个问题。选择BottomSpaceToBottomLayoutGuide约束的底部。

enter image description here

答案 1 :(得分:0)

@ Jenny的方法现在隐藏在Xcode 7中,但您可以打开故事板作为源代码,找到此约束并手动将其设置为" bottom"。要简化搜索,只需从Identity Inspector复制其ObjectID。