2017-01-10 58 views
0

我试图将UIStepper并入UITextField,同时递增步进器的值,UITextField将其更新为该值。每当我跑我的应用程序并点击步进的“+”按钮将选择器添加到UIStepper的addTarget函数时出错 - Swift 3

"Terminating app due to uncaught exception ''NSInvalidArgumentException', reason: '-[Calculator.SplitViewController stepperValueChanged:]: unrecognized selector sent to instance 0x7fd730c0af30"`

:我不断收到错误。

任何解决方案?我检查了我的选择器功能,我认为它看起来不错。

override func viewDidLoad() { 
    super.viewDidLoad() 

    partyOfStepper.autorepeat = true 
    partyOfStepper.minimumValue = 1 
    partyOfStepper.maximumValue = 99 
    partyOfTextField.text = "\(Int(partyOfStepper.value))" 
    partyOfStepper.addTarget(self, action: #selector(stepperValueChanged(stepper:)), for: .valueChanged) 

} 


@IBAction func calculateButtonTapped(_ sender: Any) { 
} 


func stepperValueChanged(stepper: UIStepper) { 

    let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField] 
    stepperMapping[stepper]!.text = "\(Int(stepper.value))" 

} 
+0

更新您的问题与完整且准确的错误消息。您省略了消息的导入部分。 – rmaddy

+0

您应该将按钮绑定到'calculateButtonTapped',并通过'stepperValueChanged'更新步进值。 –

+0

检入界面生成器(故事板),您已为该“UIStepper”设置动作,只需删除该动作即可使用。 –

回答

1

您的代码对我的作品,如Nariv说,要确保你没有以前创建的设计师为UIStepper行动(检查在连接检查员):

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var partyOfStepper: UIStepper! 
    @IBOutlet weak var partyOfTextField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     partyOfStepper.autorepeat = true 
     partyOfStepper.minimumValue = 1 
     partyOfStepper.maximumValue = 99 
     partyOfTextField.text = "\(Int(partyOfStepper.value))" 
     partyOfStepper.addTarget(self, action: #selector(stepperValueChanged(stepper:)), for: .valueChanged) 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    func stepperValueChanged(stepper: UIStepper) { 

     let stepperMapping: [UIStepper: UITextField] = [partyOfStepper: partyOfTextField] 
     stepperMapping[stepper]!.text = "\(Int(stepper.value))" 

    } 

} 
相关问题