【问题标题】:Adding UIBarButton item in swift快速添加 UIBarButton 项
【发布时间】:2014-07-18 00:13:21
【问题描述】:

我正在尝试将 UIBarButton 项添加到我的导航栏。

这是我的导航栏类声明:

import UIKit

class NavigationBarController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()

        configureToolbar()        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // #pragma mark - Navigation bar data source

    func configureToolbar() {
        let toolbarButtonItems = [
            searchBarButtonItem
        ]
        toolbar.setItems(toolbarButtonItems, animated: true)
    }

    var searchBarButtonItem: UIBarButtonItem {
        return UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:")
    }
}

编译器没有错误,但我得到的只是一个简单的导航栏。

如何让 UIBarButtonItem 显示出来?

【问题讨论】:

标签: swift uibarbuttonitem ios8


【解决方案1】:

要将项目添加到NavigationControllerNavigationBar,或将NavigationBar 添加到ViewController,您需要先通过NavigationItem。试试这个:

self.navigationItem.setRightBarButtonItems(navigationBarButtonItemsArray, animated: true)

// Or if you just want to insert one item.

self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)

要将按钮切换到左侧,只需将setRightBarButtonItem 替换为setLeftBarButtonItemsetLeftBarButtonItems

【讨论】:

    【解决方案2】:

    您可以在导航栏的右侧或左侧添加多个按钮。 我会告诉你在右侧添加,你也可以在左侧做同样的事情

    override func viewDidLoad()
    {
        let Nam1BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: #selector(Nam1BarBtnKlkFnc(_:)))
        let Nam2BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(Nam2BarBtnKlkFnc(_:)))
    
        self.navigationItem.setRightBarButtonItems([Nam1BarBtnVar, Nam2BarBtnVar], animated: true)
    }
    
    func Nam1BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
    {
        print("Nam1BarBtnKlk")
    }
    
    func Nam2BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
    {
        print("Nam2BarBtnKlk")
    }
    

    【讨论】:

      【解决方案3】:

      为 Swift 3 更新:

      使用下面的代码以编程方式添加 UIBarButton 项。

      添加左栏按钮:

        self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style:  UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
      

      添加右栏按钮:

        self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style:  UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
      

      方法定义:

      func barButtonClickAction() {
          print("Button click...")
      }
      

      【讨论】:

        猜你喜欢
        • 2014-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多