故事板:如何在由 UINavigationViewController 控制的 UITableViewController 底部设置 UIToolbar

Posted

技术标签:

【中文标题】故事板:如何在由 UINavigationViewController 控制的 UITableViewController 底部设置 UIToolbar【英文标题】:Storyboard: How to set a UIToolbar at the bottom of a UITableViewController controlled by a UINavigationViewController 【发布时间】:2014-02-10 19:25:50 【问题描述】:

我是 Cocoa 主题的新手。我用 Storyboard 构建了一个运行良好的小应用程序。 我将UITableViewController 推到另一个由UINavigationViewController 控制的位置。现在我需要一个UIToolbar 和一个固定在屏幕底部的UIBarButtonItem。 在这里你可以看到我的故事板 所以我通过拖放工具栏和工具栏中的按钮添加到Period TableViewController,因此它与UITableView 处于相同的层次结构级别。 不幸的是,“PayOff”按钮和底部工具栏都没有出现在应用程序中。

你能帮我吗,我的 Storyboard 出了什么问题?

【问题讨论】:

【参考方案1】:

在你的 ViewController 中尝试添加这个

[self.navigationController setToolbarHidden:NO animated:YES];

并使用它向其中添加 BarItems

[self setToolbarItems:@[item1, item2, item3] animated:YES];

我正在使用此方法将扫描按钮添加到 UITableViewController:

UIBarButtonItem *leftSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *rightSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
...
...
UIBarButtonItem *scanItem = [[UIBarButtonItem alloc] initWithCustomView:scanButton];

[self setToolbarItems:@[leftSpace, scanItem, rightSpace] animated:YES];

您应该小心,因为 ToolBar 可见性是为您正在使用的整个 NavigationController 设置的,您应该在需要时显示/隐藏它。

它上面的项目也需要在每个控制器上设置(我有这个问题,也许有更好的方法)

希望这会有所帮助。

【讨论】:

谢谢,解决了。关于 UIBarButtonItem,我在 PeriodTableViewController.h 中引用了一个 IBOutlet 并将其添加到 ToolbarItems。工作正常!

以上是关于故事板:如何在由 UINavigationViewController 控制的 UITableViewController 底部设置 UIToolbar的主要内容,如果未能解决你的问题,请参考以下文章

故事板:如何使用故事板为 UIPageViewController 设置初始视图控制器?

如何将 Xcode 故事板表格单元格链接到其他故事板?

你如何摆脱swift中主要故事板的代码?

如何知道当前的故事板名称?

如何将故事板连接到代码

如何将项目从使用故事板转换为不再使用故事板?