gpt4 book ai didi

ios - 如何从不同的 swift 类重置变量/步进值

转载 作者:行者123 更新时间:2023-11-28 12:54:42 25 4
gpt4 key购买 nike

我希望在单独类中的某些变量彼此相等时重置我的步进器值。我尝试使用我的 ViewController 的一个实例,但出现错误。我的变量重置了,但步进器没有重置。

CircleView 类:

class CircleView: UIView 
{
var colors1=ViewController()
func updateStepper
{
if(redd1==Int(red1)&&greenn1==Int(green1)&&bluee1==Int(blue1))
{
redd1=0;
greenn1=0;
bluee1=0;
colors1.redStepper.value=0.0;//
colors1.greenStepper.value=0.0;//
colors1.blueStepper.value=0.0;//
}
}
}

View Controller 类:

class ViewController: UIViewController 
{
var colors = CircleView()

@IBOutlet weak var circleView1: CircleView!
@IBOutlet weak var blueStepper: UIStepper!
@IBOutlet weak var greenStepper: UIStepper!
@IBOutlet weak var redStepper: UIStepper!

@IBAction func stepperChange(sender: UIStepper)
{
circleView1.redd1 = Int(redStepper.value);
redValue.text = Int(sender.value).description;
}
@IBAction func stepperChange1(sender: UIStepper)
{
circleView1.greenn1 = Int(greenStepper.value);
greenValue.text = Int(sender.value).description;
}
@IBAction func stepperChange2(sender: UIStepper)
{
circleView1.bluee1 = Int(blueStepper.value);
blueValue.text = Int(sender.value).description;
}
}

最佳答案

您可以使用这样的委托(delegate)模式:

// Add a delegate to your CircleView to reach back to your owning ViewController
protocol CircleViewDelegate {
func updateRedStepperValue(value: Double)
func updateGreenStepperValue(value: Double)
func updateBlueStepperValue(value: Double)
}

class CircleView: UIView
{
var colors1=ViewController()

var delegate: CircleViewDelegate?

func updateStepper
{
if(redd1==Int(red1)&&greenn1==Int(green1)&&bluee1==Int(blue1))
{
redd1 =0;
greenn1 =0;
bluee1 =0;

// Call back to your delegate
delegate?.updateBlueStepperValue(0.0)
delegate?.updateGreenStepperValue(0.0)
delegate?.updateRedStepperValue(0.0)
}
}
}

然后您的 ViewController 将订阅委托(delegate)回调:

class ViewController: UIViewController, CircleViewDelegate
{
var colors = CircleView()

@IBOutlet weak var circleView1: CircleView!
@IBOutlet weak var blueStepper: UIStepper!
@IBOutlet weak var greenStepper: UIStepper!
@IBOutlet weak var redStepper: UIStepper!

@IBAction func stepperChange(sender: UIStepper)
{
circleView1.redd1 = Int(redStepper.value);
redValue.text = Int(sender.value).description;
}
@IBAction func stepperChange1(sender: UIStepper)
{
circleView1.greenn1 = Int(greenStepper.value);
greenValue.text = Int(sender.value).description;
}
@IBAction func stepperChange2(sender: UIStepper)
{
circleView1.bluee1 = Int(blueStepper.value);
blueValue.text = Int(sender.value).description;
}


// Your delegate callback methods
func updateRedStepperValue(value: Double) {
redStepper.value = value
}
func updateGreenStepperValue(value: Double) {
greenStepper.value = value
}
func updateBlueStepperValue(value: Double) {
blueStepper.value = value
}


override func viewDidLoad() {
super.viewDidLoad()

// Make sure to set the delegate outlet
colors.delegate = self
}
}

关于ios - 如何从不同的 swift 类重置变量/步进值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322601/

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