如何创建加号栏按钮项

How to create a plus symbol bar button item

如何将 UIBarButtonItem 创建为加号?我尝试给它命名为“+”,但我希望它看起来更像您在使用情节提要时通常会创建的加号。没有背景也没有下划线。

它是提供的条形按钮系统项目之一。

let addBarButton = UIBarButtonItem(barButtonSystemItem: .add, target: YOUR_TARGET, action: YOUR_SELECTOR)

Swift 3.0

let addBarButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(ViewController.openSearch))

我想这就是你要找的:

Swift 4.2 例子

这是你如何做的:

let addBarButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addUser))

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationItem.rightBarButtonItem = addBarButton
}

@objc private func addUser() {
    // Some code, e.g.
    let storyboard = UIStoryboard(name: "CreateNewUser", bundle: nil)
    let vc = storyboard.instantiateViewController(withIdentifier: "createUser") as! CreateUserVC
    self.navigationController?.pushViewController(vc, animated: true)
}

重要提示:有一个小问题,许多用户已经指出,我也花了很多时间才弄清楚(iOS 11、12 ) 您必须将 self.navigationItem.rightBarButtonItem = addBarButton 放在 viewDidLoad 函数中,否则按钮的选择器将不起作用。根据 Whosebug 上的其他用户,这与点击手势有关。在我的代码中,我的一个视图控制器在 viewDidLoad 函数之外分配了两个按钮,但也使用了一个隐藏键盘的函数,这可能会导致按钮正常工作。但是,在我不显示或隐藏键盘的其他两个项目的视图控制器中,以编程方式设置导航栏按钮的 #selector 不起作用,除非它们在 viewDidLoad 函数中定义,如示例中所示多于。我希望这个提示可以为您节省大量时间,以防您遇到这个问题。