我最近开始使用界面构建器,我现在面临的问题是当我使用导航控制器的back
按钮时,我的UI元素的y轴上升了大约20-30 px,是否存在一些设置我要用来避免这个问题?只有当我使用pushViewController
时,它们才会上升,当我使用popViewController
时,它会加载我需要的方式。
代码我用于推送:
examVC=[[ExampleClass alloc] initWithNibName:@"ExampleClass" bundle:nil];
[[self navigationController] pushViewController:examVC animated:YES];
我正在附上问题的图像。请注意标签如何下降约20-30 px。
为什么会这样?我做错了什么?
感谢所有帮助。
编辑:更改屏幕以获得更清晰
我正在圆形矩形按钮上使用推送代码。
屏幕1:我的IB中设置的UI元素
屏幕2:从上一个视图推送时的外观
屏幕3:从“下一视图”
中弹出时的外观
答案 0 :(得分:2)
我的家庭视图控制器隐藏了导航栏,我发布的屏幕是主视图之后的第二个视图。我只想在第一个视图中隐藏导航栏,所以我使用了:
- (void)viewDidDisappear:(BOOL)animated
{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewDidDisappear:animated];
}
它导致了问题,因为我在viewDidDisappear
中再次显示导航栏,因此视图将首先加载然后将显示导航栏,使其重叠。
所以我将相同的代码放在viewWillDisappear
中,这样可以解决问题。导航栏在加载下一个视图之前已加载。现在视图加载就像我在界面构建器中设计它一样。
答案 1 :(得分:1)
嘿我不知道它是否适用于你或者不是在你的IB更改顶部栏None
到Navigation Bar
然后相应地调整您的元素并调整代码。
答案 2 :(得分:0)
我在这里尝试了所有的建议,但没有一个有效。弹出回原始视图控制器时,我的UI元素总是较低。解决这个问题的唯一方法就是在Interface Builder中进入我的nib文件并关闭Auto Layout。