Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.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
Ios Xcode-使用tableview推断导航栏布局问题_Ios_Objective C_Xcode_Uitableview - Fatal编程技术网

Ios Xcode-使用tableview推断导航栏布局问题

Ios Xcode-使用tableview推断导航栏布局问题,ios,objective-c,xcode,uitableview,Ios,Objective C,Xcode,Uitableview,当您有一个推断的导航栏时,我对tableview的布局有一个非常令人沮丧的问题 为了重新产生这个错误 1:创建基于导航的应用程序 2:创建包含XIB文件的第二个ViewController(在此XIB文件中,选择要模拟的顶栏) 3:在第一个屏幕上,放置一个按钮,单击该按钮可将您带到步骤2中创建的新控制器 4:在新的xib文件上,在屏幕上放置一个tableview并设置委托方法 5:使用xib文件创建第三个ViewController 现在,在第二个屏幕中的didselectrow表委托方法下,我

当您有一个推断的导航栏时,我对tableview的布局有一个非常令人沮丧的问题

为了重新产生这个错误

1:创建基于导航的应用程序

2:创建包含XIB文件的第二个ViewController(在此XIB文件中,选择要模拟的顶栏)

3:在第一个屏幕上,放置一个按钮,单击该按钮可将您带到步骤2中创建的新控制器

4:在新的xib文件上,在屏幕上放置一个tableview并设置委托方法

5:使用xib文件创建第三个ViewController

现在,在第二个屏幕中的didselectrow表委托方法下,我设置了它,将我带到第三个屏幕。但是,当应用程序导航到新屏幕时,按下“上一步”按钮,tableview将被向下推一个与导航栏相等的高度。查看图像

最初的tableview屏幕是这样的

然后我选择表格行,进入第三个屏幕,然后按后退按钮,然后看起来像这样

这只发生在XIB文件中。如果我创建相同的功能,但仅使用故事板而不是XIB文件,则不会出现此问题。现在,我可以通过删除推断出的顶部栏来解决这个问题,而不是在XIB文件中手动放置导航栏。但我不应该每次都这么做,因为这很烦人

这仅在使用tableview导航到新屏幕时发生,如果我使用按钮导航到第三个屏幕,则不会发生此类问题


这是新版本Xcode的一个bug吗?我以前在通过TableView导航时没有注意到这个问题。

您可以测试一下,在ViewController之间不更改导航控制器的半透明属性。如果可以将此NSLog添加到两个视图,则将显示。NSLog(@“半透明%ld”,self.navigationController.navigationBar.transparent);刚测试过,可以确认,半透明性能没有变化。