如何在Storyboards的UITableViewController底部添加工具栏?

vzm*_*vzm 35 iphone objective-c uitableview uiview ios

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

不同于这个问题:LINK我不认为我可以将TableView子视图添加到普通视图,然后只是以编程方式添加工具栏,因为我使用的动态单元看起来更容易通过Storyboard进行集成.

就目前而言,这就是我所困扰的...... 在此输入图像描述

小智 77

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

  1. 在故事板中选择视图控制器
  2. 在实用程序中,显示"属性检查器".选择"底栏"样式.
  3. 添加栏按钮项
  4. 在视图控制器中添加代码,以显示和隐藏工具栏:

码:

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

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setToolbarHidden:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

  • @ Jean-DenisMuys如果你在`NavigationController`中嵌入了一个`UITableViewController`,你必须为`NavigationController`选择"Opaque Toolbar",然后在运行时可以看到底栏. (4认同)
  • 多年以后,使用Xcode 7,我无法实现这个答案.在`UITableViewController`的属性检查器中,我为"Bottom Bar"设置选择了"Opaque Toolbar".我添加了`UIBarButtonItem`s.工具栏和按钮在Storyboard中显示正常,但在运行时不会显示,但我实现了2个覆盖,如图所示.任何的想法? (2认同)

Keg*_* K. 26

很容易.只需单击导航控制器即可.然后在Show Attributes Inspector中,然后在导航控制器中单击显示工具栏.检查屏幕截图.

显示工具栏屏幕截图

  • 这在使用 Swift 的 Xcode 7.2.1 iOS 9.2 中确实有效。您可以在 Interface Builder 中打开它,也可以在 viewWillAppear 中使用 navigationController?.setToolbarHidden() 方法或通过设置 navigationController?.toolbarHidden 以编程方式打开和关闭每个视图控制器。 (2认同)

Kei*_*day 17

对于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)
}
Run Code Online (Sandbox Code Playgroud)

  • 这适用于Xcode 7.2.1 iOS 9.2和Swift.这假设您的视图当然嵌入在导航控制器中,这实际上是工具栏的一部分. (2认同)

Jos*_*osh 10

此补救措施适用于(2016)iOS 9.2.我们都讨厌Apple如何让我们在像这样简单易懂的事情上浪费时间.我喜欢这种愚蠢问题的一步一步解决方案,所以我会和你分享!:

  1. 选择视图控制器>属性检查器>选择"不透明工具栏"
  2. 现在,将"Bar Button"项拖放到Storyboard中.
  3. 选择新下拉的条形按钮项目> Atrribute Inspector>系统图标>选择您喜欢的图标.
  4. 在View控制器的viewDidLoad()方法中,在其他任何内容之前添加此代码:

    override func viewDidLoad(animated: Bool) {
        self.navigationController?.setToolbarHidden(false, animated: true)
    
    Run Code Online (Sandbox Code Playgroud)

    //代码的其余部分}

  5. 您不希望该工具栏在其他地方闲置,因此在视图中添加此工具以在当前窗口关闭后隐藏它:

-

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

        }
Run Code Online (Sandbox Code Playgroud)

瞧!


Dav*_*ong 5

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

虽然您将无法使用UITableViewController作为链接类,但步骤4将允许您将其链接到常规UIViewController.

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

@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述