У меня есть stepper в моем ViewController, который управляет значением переменной в моем UIView. Когда я переустанавливаю переменные в 0 в моем UIView, я также хочу, чтобы шагомер и метка были сброшены, но они не будут. Я попытался использовать делегат, но я получаю сообщение об ошибке. Заранее спасибо!Swift delegate не работает
ViewController:
protocol CircleViewDelegate: class {
func updateStepper(view: CircleView)
}
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!
@IBOutlet weak var redValue: UILabel!
@IBOutlet weak var greenValue: UILabel!
@IBOutlet weak var blueValue: UILabel!
var circleViewDelegate: CircleView!
override func viewDidLoad() {
super.viewDidLoad()
circleViewDelegate!.delegate = self
}
func updateStepper(view: CircleView) {
redStepper.value=0.0;
greenStepper.value=0.0;
blueStepper.value=0.0;
}
@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;
}
}
UIView:
class CircleView: UIView {
var redd1 = 0
var greenn1 = 0
var bluee1 = 0
weak var delegate: CircleViewDelegate?
func updateStepper() {
delegate?.updateStepper(self)
}
func game() {
if(redd1==Int(red1) && greenn1==Int(green1) && bluee1==Int(blue1)) {
redd1 = 0;
green1 = 0;
blue1 = 0;
updateStepper()
}
}
}
Какая ошибка вы получаете? –
на этой строке: circleViewDelegate! .delegate = self, я получаю сообщение об ошибке: EXC_BAD_INSTRUCTION – Steve
Вам не нужно 'circleViewDelegate' - вы хотите сказать' circleView1.delegate = self' – Paulw11