我在导航堆栈中有三个viewcontrollers。第一个视图控制器不使用uitoolbar,第二个视图控制器不使用uitoolbar,第三个视图控制器不使用uitoolbar。
问题是,当我从第二个UIViewController转到第三个UITableViewController时,如果我隐藏工具栏,屏幕顶部会有一个白色间隙。
这是一张图片:
我目前有[self.navigationController setToolbarHidden:YES animated:YES];
在第二个视图控制器的viewWillDisappear中,但我也把它放在第三个视图控制器的viewWillAppear方法中。两者都会导致出现差距。
我该如何解决这个问题?
答案 0 :(得分:0)
首先,我建议使用setToolbarHidden:YES animated:NO
让新的UIViewController不带工具栏。我认为你的方法最初会显示它,然后就会消失,对吗?如果你使用animated:NO
(或者使用没有animated:
的方法签名),当第三个UIViewController被推到屏幕上时,新的UIViewController应该“推”掉第二个UIViewController的UIToolbar。
其次,你可能需要在Interface Builder中查看你的UIViewController视图的震动和支柱。这几乎可以肯定是造成这种差距的原因。您可能希望拥有固定的上下边距和灵活的高度。
答案 1 :(得分:0)
我会回答我自己的问题,但我不会接受它,因为它很黑。
我能够通过在viewDidLoad的开头添加这行代码来修复它:
[self.tableView setFrame: CGRectMake(0, 0, 320, 493)];
基本上,我将tableview框架的高度设置为比全屏尺寸(320 x 480)大13个像素。