Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么我的UI元素在popViewController上的位置会改变?_Iphone_Xcode_Interface Builder - Fatal编程技术网

Iphone 为什么我的UI元素在popViewController上的位置会改变?

Iphone 为什么我的UI元素在popViewController上的位置会改变?,iphone,xcode,interface-builder,Iphone,Xcode,Interface Builder,我最近开始使用interface builder,我现在面临的问题是,当我使用导航控制器的back按钮时,我的UI元素的y轴上升了大约20-30 px,我是否需要使用一些设置来避免这个问题?只有当我使用pushViewController时,它们才会上升,当我使用popViewController时,它会按我需要的方式加载 我用于推送的代码: examVC=[[ExampleClass alloc] initWithNibName:@"ExampleClass" bundle:nil];

我最近开始使用interface builder,我现在面临的问题是,当我使用导航控制器的
back
按钮时,我的UI元素的y轴上升了大约20-30 px,我是否需要使用一些设置来避免这个问题?只有当我使用
pushViewController
时,它们才会上升,当我使用
popViewController
时,它会按我需要的方式加载

我用于推送的代码:

    examVC=[[ExampleClass alloc] initWithNibName:@"ExampleClass" bundle:nil];
    [[self navigationController] pushViewController:examVC animated:YES];
我把问题附在图片上。请注意标签是如何下降约20-30像素的

为什么会发生这种情况?我做错了什么

谢谢你的帮助。

编辑:更改屏幕以提高清晰度

我在按圆形矩形按钮上的代码

屏幕1:my IB中设置的UI元素

屏幕2:从上一视图推送时的外观

屏幕3:从“下一个视图”弹出时的外观


嘿,我不知道它是否适合您,但在您的IB中,将顶部栏更改为
None
导航栏



然后相应地调整您的元素并tun代码。嘿,我不知道它是否适合您,但在您的IB中,将顶部栏
更改为
导航栏




然后相应地调整您的元素并tun代码。我的主视图控制器隐藏了导航栏,我发布的屏幕是主视图之后的第二个视图。我只想在第一个视图中隐藏导航栏,因此我使用了:

- (void)viewDidDisappear:(BOOL)animated
{
     [self.navigationController setNavigationBarHidden:NO animated:animated];
     [super viewDidDisappear:animated];
}
这导致了问题,因为我在
视图中再次显示导航栏,因此视图将首先加载,然后显示导航栏,导致重叠


因此,我将相同的代码放入
视图将消失
,从而消除了该问题。正如导航栏在加载下一个视图之前加载的一样。现在视图加载方式与我在interface builder中设计的一样。

我的主视图控制器隐藏了导航栏,我发布的屏幕是主视图之后的第二个视图。我只想在第一个视图中隐藏导航栏,因此我使用了:

- (void)viewDidDisappear:(BOOL)animated
{
     [self.navigationController setNavigationBarHidden:NO animated:animated];
     [super viewDidDisappear:animated];
}
这导致了问题,因为我在
视图中再次显示导航栏,因此视图将首先加载,然后显示导航栏,导致重叠


因此,我将相同的代码放入
视图将消失
,从而消除了该问题。正如导航栏在加载下一个视图之前加载的一样。现在,视图加载与我在interface builder中设计的一样。

我在这里尝试了所有建议,但没有一个有效。当弹出到原始视图控制器时,我的UI元素总是较低。唯一能帮我解决这个问题的方法是在Interface Builder中进入我的nib文件并关闭自动布局。

我在这里尝试了所有建议,但没有一个有效。当弹出到原始视图控制器时,我的UI元素总是较低。唯一能帮我解决这个问题的方法是在Interface Builder中进入我的nib文件并关闭自动布局。

谢谢你的建议,但仍然没有帮助,我的标签在
弹出后仍在向下移动,我将用更清晰的图像编辑我的问题。根据你的建议更改图像,还是一样。谢谢你的建议,但还是没用,我的标签在
pop
后仍在向下移动,我会用更清晰的图像编辑我的问题。用你的建议更改图像,还是一样的。@iNoob。。问题不在于你的背或是什么时候。。。如果您看到您的xib和第三张图像,即pop后的视图,则是相同的。所以问题是,当你第一次推视图时,它会将y向上移动。@inderkumarratore是的,我注意到在你建议在顶部栏选项中添加导航栏之后,你知道为什么会出现第一个屏幕的行为吗?你能在你按下第一个屏幕的地方发布代码吗???试试
动画:不
我想你的导航栏在你查看后会被按下……没关系,接受你的答案吧……)@伊诺布。。问题不在于你的背或是什么时候。。。如果您看到您的xib和第三张图像,即pop后的视图,则是相同的。所以问题是,当你第一次推视图时,它会将y向上移动。@inderkumarratore是的,我注意到在你建议在顶部栏选项中添加导航栏之后,你知道为什么会出现第一个屏幕的行为吗?你能在你按下第一个屏幕的地方发布代码吗???试试
动画:不
我想你的导航栏在你查看后会被按下……没关系,接受你的答案吧……)