将多个自定义栏按钮添加到自定义导航栏

时间:2015-07-08 18:40:25

标签: ios swift uinavigationbar uinavigationitem

我需要在Swift中的自定义导航栏的每一端添加两个小节按钮项。我正在使用以下方法,虽然我没有错误,但没有任何错误出现。我正在使用自己的自定义图标,当我使用界面构建器添加它们时会出现这些图标。显然,我只能在每一端添加一个。

@IBOutlet weak var navBar: UINavigationBar!

    override func viewDidLoad() {

            var iconOne = UIImage(named: "iconOne")
            var iconTwo = UIImage(named: "iconTwo")

            var buttonOne:UIBarButtonItem = UIBarButtonItem(image: iconOne, style: UIBarButtonItemStyle.Plain, target: self, action: nil)
            var buttonTwo:UIBarButtonItem = UIBarButtonItem(image: iconTwo, style: UIBarButtonItemStyle.Plain, target: self, action: nil)

            self.navBar.setItems([buttonOne,buttonTwo], animated: true)

    }

这是在嵌入导航控制器的视图控制器中实现的。如果我没有使用自定义导航栏,我将能够使用self.navigationItem.setRightBarButtonItems([buttonOne, buttonTwo], animated: true)。什么是解决方法?

3 个答案:

答案 0 :(得分:0)

此代码适用于我:

@IBOutlet weak var navBar: UINavigationBar!
@IBOutlet weak var navBarItem: UINavigationItem!

func displayTextInNavBar(text: String) {

    let labelWidth: CGFloat = navBar.frame.width / 6
    let frame = CGRect(x: 0, y: 0, width: labelWidth, height: navBar.frame.height)
    let label = UILabel(frame: frame)

    label.textAlignment = .Right
    label.textColor = UIColor(red: 0/255, green: 127/255, blue: 0/255, alpha: 1)
    label.font = UIFont(name: "Bradley Hand", size: 20)
    label.text = text

    let navBarButtonItem = UIBarButtonItem(customView: label)
    navBarItem.rightBarButtonItem = navBarButtonItem
}

上面的标签位于导航栏的右侧。如果您想要一个可点击的实际按钮,请改为:

let navBarButtonItem = UIBarButtonItem(title: text, style: .Plain, target: self, action: nil)

如果您希望该按钮在点击时实际执行某些操作,则代替nil指定一些功能。

答案 1 :(得分:0)

我的解决方案:

var barButton : UIBarButtonItem?

override func viewDidLoad() {
    self.barButton = UIBarButtonItem(title: "Options", style: .plain, target: self, action: nil))
    self.navigationItem.rightBarButtonItems = [barButton] as? [UIBarButtonItem]
}

答案 2 :(得分:-1)

可以使用自定义视图

创建

UIBarButtonItem

  • 创建视图
  • 向其添加UIButtons
  • 布局
  • 使用自定义视图
  • 创建UIBarButtonItem
  • 将其添加到导航栏