gpt4 book ai didi

ios - 条形按钮项目在 Swift 中启用问题

转载 作者:可可西里 更新时间:2023-11-01 02:21:31 27 4
gpt4 key购买 nike

全部,

在 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
}
}

我现在在 View Controller 中设置了不同的计算属性 - 就像这样(从 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)

}

当在表格 View 单元格上按下按钮时。要选择产品,并将支付按钮突出显示为 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

}

最佳答案

由于 PayButton 不是可选属性,我假设您在初始化 BarButtonPAY 之前在初始化程序中设置它的值。尝试将默认值设置为 PayButton

var PayButton : Int = -1 {
didSet {
println("Barracuda")
BarButtonPAY?.enabled = true
}
}

或者声明为可选的Int

var PayButton : Int? {
didSet {
println("Barracuda")
BarButtonPAY?.enabled = true
}
}

并在两种情况下在 init 上设置它的值时删除该行

已编辑

即使在 let test = ViewController() 中创建对象类型的 ViewController 之后,BarButtonPAY 也不会初始化(您不能使用它直到 ViewController viewDidLoad 方法)。一种可能的解决方法:在 ViewController 中创建另一个可选的 Integer 属性并将其命名为 initialValue。在 selectedButton 上设置 initialValue 如下

@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.initialValue = 2

}

然后在 ViewController viewDidLoad 中将 PayButton 设置为 initialValue

override func viewDidLoad(){

PayButton = initialValue
}

关于ios - 条形按钮项目在 Swift 中启用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30664807/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com