如何将一个工具栏添加到故事板中的UITableViewController的底部?

在我已经使用Storyboards设置的UITableView中,我需要能够添加一个粘贴到视图底部的工具栏,它不应该滚动。

不像这个问题: LINK我不认为我可以将一个TableView子视图添加到一个普通的视图,然后只是以编程方式添加一个工具栏,因为我使用的dynamic单元格似乎更容易通过故事板集成。

现在,这是我坚持…. 在这里输入图像说明

如果你想在一个视图控制器放置在一些导航控制器显示工具栏。

  1. 在故事板中select视图控制器
  2. 在实用程序中,显示“属性检查器”。 select“底部栏”样式。
  3. 添加栏button项目
  4. 在视图控制器中添加代码,以显示和隐藏工具栏:

码:

 - (void)viewWillAppear:(BOOL)animated { [self.navigationController setToolbarHidden:NO animated:YES]; } - (void)viewWillDisappear:(BOOL)animated { [self.navigationController setToolbarHidden:YES animated:YES]; } 

好简单。 只需点击导航控制器。 然后在显示属性检查器,然后导航控制器,然后点击显示工具栏。 检查屏幕截图。

显示工具栏屏幕截图

对于Swift用户,你可以使用下面的代码:

 override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated); self.navigationController?.setToolbarHidden(false, animated: animated) } override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated); self.navigationController?.setToolbarHidden(true, animated: animated) } 

此补救措施适用于(2016)iOS 9.2。 我们都讨厌苹果如何让我们浪费时间这些应该是直截了当的东西。 我喜欢这种愚蠢的问题一步一步的解决scheme,所以我会与你分享!

  1. select您的视图控制器>属性检查器>select“不透明工具栏”
  2. 现在,将一个“Bar Button”项拖放到Storyboard上。
  3. select您新近删除的栏button项> Atrribute Inspector>系统图标>select您最喜欢的图标。
  4. 在View控制器的viewDidLoad()方法中,在其他任何地方添加这个代码:

     override func viewDidLoad(animated: Bool) { self.navigationController?.setToolbarHidden(false, animated: true) 

    //代码的其余部分}

  5. 你不希望那个工具栏挂在其他地方,所以一旦当前窗口被解散,把它添加到你的视图中就可以隐藏它:

  override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated); self.navigationController?.setToolbarHidden(true, animated: animated) } 

瞧!

  1. 将一个UIViewController拖到Storyboard中
  2. 将一个UIToolbar拖到Storyboard的内容之上。
  3. 在故事板内容的顶部拖动一个UITableView。
  4. 将tableview的委托和数据源链接到你的源代码。

虽然你不能使用UITableViewController作为你的链接类,但是步骤4将允许你将它链接到一个普通的UIViewController。

不过在标题中你需要这样的东西

 @interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> 

它会在你的故事板中看起来像这样:

在这里输入图像说明

我用一个容器视图中间视图控制器的表。 将工具栏视图添加到中间,并使其看起来,但是你想(使用UIButtons而不是UIBarButtonItem)。

如果这样做,请将容器视图拉伸到屏幕的顶部,而不是导航栏的底部,否则会拉出头发,试图让滚动插入正确。

在类似的问题一些更多的细节https://stackoverflow.com/a/31878998/1042111