0

我在导航堆栈中有三个视图控制器。第一个视图控制器不使用 uitoolbar,第二个使用,第三个不使用。

问题是,当我从第二个 UIViewController 转到第三个 UITableViewController 时,如果我隐藏工具栏,屏幕顶部会出现一个白色间隙。

这是一张图片:

顶部间隙

我目前[self.navigationController setToolbarHidden:YES animated:YES]; 在第二个视图控制器的 viewWillDisappear 中,但我也把它放在了第三个视图控制器的 viewWillAppear 方法中。两者都会导致出现差距。

我怎样才能解决这个问题?

4

2 回答 2

0

首先,我建议使用setToolbarHidden:YES animated:NO让新的 UIViewController 在没有工具栏的情况下出现。我认为您的方法最初会显示它然后消失,对吗?如果您使用animated:NO(或者使用不带 的方法签名animated:),当第三个 UIViewController 被推到屏幕上时,新的 UIViewController 应该“推”出第二个 UIViewController 的 UIToolbar。

其次,您可能需要在 Interface Builder 中查看您的 UIViewController 视图的震动和支撑。几乎可以肯定,这就是造成这种差距的原因。您可能希望拥有固定的顶部和底部边距以及灵活的高度。

于 2012-04-29T21:51:56.630 回答
0

我会回答我自己的问题,但我不会接受它,因为它很hacky。

我可以通过在 viewDidLoad 的开头添加这行代码来修复它:

[self.tableView setFrame: CGRectMake(0, 0, 320, 493)];

基本上,我将 tableview 框架的高度设置为比全屏尺寸(320 x 480)大 13 个像素。

于 2012-04-29T23:01:51.437 回答