向导航控制器添加工具栏

3
嗨,伙计们,我有一个导航控制器和一个表视图,我正在尝试添加一个工具栏,但是我实现的方式会导致表中的最后一行被隐藏在工具栏后面。我将尝试通过图片来说明:

没有工具栏时滚动到底部的表视图:

alt text

表格视图滚动到底部并带有工具栏(请注意最后一行“供应商”被遮挡在工具栏后面):

alt text

我正在遵循 this 指南,这是我为我的实现所做的内容:

alt text

正如你所看到的,我有一个“视图”而不是“窗口”来处理。这是我用于显示工具栏的代码:
- (void)viewDidLoad {
    [super viewDidLoad];
 [self.view addSubview:self.navigationController.view];
 [self.view addSubview:toolbar];
 [self.navigationController.view setFrame:self.view.frame];
}

我认为我需要调整导航控制器框架来补偿底部的工具栏。这就是我卡住的地方。我该如何做?任何帮助都将不胜感激!

2个回答

4

我之前遇到过类似的问题。

你需要将UINavigationController的视图高度调整为减去44像素。

这样应该就可以了:

- (void)viewDidLoad {
   [super viewDidLoad];
   [self.view addSubview:self.navigationController.view];
   [self.navigationController.view setFrame:CGRectMake(self.view.frame.x, self.view.frame.y, self.view.frame.width, self.view.frame.height - 44.0f)];
   [self.view addSubview:toolbar];
}

很好的回答,这正是我想要的,但另一个答案更简单、更容易实现,所以我选择了那个答案而不是你的。还是谢谢你的回复! - Stunner
@Stunner 没问题。我实现这个解决方案的应用程序需要完全使用代码 - 没有 IB。 - Jacob Relkin

4
如果您将工具栏添加到导航控制器中,它会自动调整大小。只需在IB中勾选此框即可。 在IB中勾选“显示工具栏”框

我一直在寻找像这样的东西。可悲的是,我没有找到导航控制器,而是集中精力于视图选项。谢谢! - Stunner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接