【发布时间】:2015-06-05 10:56:54
【问题描述】:
全部,
在 ViewDidLoad 中,我设置了:
BarButtonPAY.enabled = false
这会禁用条形按钮项目并且它是不可选择的,这很好。
我在 View Controller 上有一个计算属性,它使用 enable = true 启用按钮。
我收到错误“在可选值中找到 nil”,我注意到 BarButtonItem 是可选的。当我把 ?在变量的末尾它仍然没有启用。有任何想法吗 ?
class ViewController: UIViewController {
@IBOutlet weak var BarButtonPAY: UIBarButtonItem!
var PayButton : Int {
didSet {
println("Barracuda")
BarButtonPAY?.enabled = true
}
}
我现在在视图控制器中设置了不同的计算属性 - 就像这样(从 init 中删除了 var)。
@IBOutlet weak var BarButtonPAY: UIBarButtonItem!
var PayButton : Int? {
didSet {
println("Barracuda")
BarButtonPAY?.enabled = true
}
}
required init(coder aDecoder: NSCoder) {
// self.PayButton = 0
super.init(coder: aDecoder)
}
init() {
// self.PayButton = 0
super.init(nibName: nil, bundle: nil)
}
当在 tableview 单元格上按下按钮时。选择产品,并将支付按钮突出显示为 BarButtonItem :
@IBAction func SelectedButton(sender: UIButton) {
// Set the colours and then highlight 'Next' on
sender.backgroundColor = UIColor.blueColor()
sender.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
sender.setTitle("Ordered", forState: UIControlState.Normal)
let test = ViewController()
test.PayButton = 2
}
【问题讨论】:
-
似乎很合理,我该如何解决?该按钮在界面生成器中设置。我在视图控制器上有一个容器(里面有一个表格视图),当在单元格上按下一个按钮时,它应该调用这个计算机变量(它确实如此)。
-
您可以先在设置计算属性的位置显示您的代码并显示视图控制器。
-
我认为按钮来自故事板,检查按钮连接(委托)故事板到 ViewController 并在代码 BarButtonPAY!.enabled = true 中使用它
-
仍然,在显示视图控制器的位置添加代码并访问
PayButton属性。