如何在iOS / Swift的顶部导航栏中添加“继续”按钮

时间:2014-07-08 19:45:59

标签: swift uibarbuttonitem

(Xcode6,iOS8,iPhone,Swift)

我想在导航栏的右侧添加一个“继续”按钮。

如何实现这一目标?我一直在尝试使用UIBarButtonItem上的一些方法,但无法使其正常工作。

我迄今为止的最大努力是:

    var b = UIBarButtonItem(title: "Continue", style: UIBarButtonItemStyle, target: self, action: nil)
    self.navigationItem.rightBarButtonItem = b

但我在第一行收到错误。它不喜欢“style”参数。我也试过了

    var b = UIBarButtonItem(title: "Continue", style: UIBarButtonItemStylePlain, target: self, action: nil)

但没有运气。仍然停留在样式参数上。有任何想法吗? tyvm Keith:D

编辑:对于子孙后代,以下行还包含action设置:

    var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:"sayHello")

参考: How to set the action for a UIBarButtonItem in Swift

2 个答案:

答案 0 :(得分:10)

enum UIBarButtonItemStyle : Int {
case Plain
case Bordered
case Done
}

所以你不应该写' UIBarButtonItemStyle',而是使用' .Plain' (注意单词前面的点):

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action: nil)

要向按钮添加实际操作,请使用以下内容(假设方法sayHello()存在):

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action: Selector("sayHello"))

编辑:代码中的错误

答案 1 :(得分:2)

Swift中的枚举与ObjC完全不同,以非常好的方式:]

在这里你需要使用:

UIBarButtonItemStyle.Plain

你也可以这样做:

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action: nil)

为了最简单!

旁注:尽可能使用let代替var,对性能,健康等有所帮助!