【问题标题】:Adding multiple custom bar buttons to custom nav bar将多个自定义栏按钮添加到自定义导航栏
【发布时间】:2015-07-08 18:40:25
【问题描述】:

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

@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)。解决方法是什么?

【问题讨论】:

    标签: ios swift uinavigationbar uinavigationitem


    【解决方案1】:

    此代码适用于我:

    @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

    【讨论】:

      【解决方案2】:

      我的解决方案:

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

      【讨论】:

        【解决方案3】:

        UIBarButtonItem 可以使用自定义视图创建

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

        【讨论】:

        • 这就是我想要做的。我该怎么做?
        • 就像我解释的那样。
        • 在代码中。我懂你的英语。我不明白这个方法。我如何实际创建视图并进行布局?
        • 我描述的每个步骤都是 iOS 开发人员 101。它们由苹果记录,并在堆栈溢出时显示数千次。不要太懒惰。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 2016-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多