如何创建加号符号栏按钮项

时间:2016-06-20 00:31:39

标签: swift uibarbuttonitem

如何将UIBarButtonItem创建为加号?我尝试给它标题“+”,但我希望它看起来更像你通常创建的加号,如果你使用故事板。没有背景或下划线。

4 个答案:

答案 0 :(得分:8)

这是提供的栏按钮系统项目之一。

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

答案 1 :(得分:3)

我认为这就是你要找的东西:

screenshot of attribute inspector in Xcode highlighting "System Item" under "Bar Button Item"

答案 2 :(得分:2)

Swift 3.0

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

答案 3 :(得分:0)

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),您必须将{{1 }}内的self.navigationItem.rightBarButtonItem = addBarButton函数中,否则按钮的选择器将不起作用。与StackOverflow上的其他用户一样,这与点击手势有关。在我的代码中,我的一个视图控制器在viewDidLoad函数外部分配了两个按钮,但是还使用了一个隐藏键盘的函数,这可能会使按钮正常工作。但是,在我没有显示或隐藏键盘的其他两个项目的视图控制器中,以编程方式设置的导航栏按钮的viewDidLoad无法正常工作,除非它们在示例中的#selector函数中定义了以上。我希望本技巧将为您节省大量时间,以防您遇到此问题。