내 pickerView에서 특정 행에 대한 작업을 수행하려고 할 때 문제가 발생합니다.picker보기 및 동작 단추
예, pickerView에 여러 항목이 있는데 핵심 데이터에 카운터 특성이 있으므로 pickerView에서 특정 항목을 선택하고 해당 카운터 특성을 하나씩 증가시켜야합니다. 여기
내가 시도 것입니다 : 나는 버튼 기능에서 사용할 수 있도록
var MEDARRAY = [NSManagedObject]()
var Counter:NSInteger?
var thecounte:Int?
@IBOutlet weak var thepicker: UIPickerView!
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return MEDARRAY.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
self.view.endEditing(true)
return String(describing: MEDARRAY[row].value(forKey: "medName")!)
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let NumDay = self.MEDARRAY[row].value(forKey: "medNumDay") as? NSInteger
let NumMed = self.MEDARRAY[row].value(forKey: "medNum") as? NSInteger
Counter = (self.MEDARRAY[row].value(forKey: "takenCounter") as? NSInteger)!
TotalDose.text = String(NumDay! * NumMed!)
RemainDose.text = String(Int(TotalDose.text!)! - Counter!)
}
//here is the button should increase the counter
@IBAction func Taken(_ sender: AnyObject) {
let Appdelegate = UIApplication.shared.delegate as? AppDelegate
let context = Appdelegate?.persistentContainer.viewContext
let newCounter = Counter! + 1
do{
// how to specified the did selected row in here to update the counter value for that row
self.MEDARRAY[newCounter].setValue(newCounter, forKey: "takenCounter")
try context?.save()
}catch{
print(error)
}
}
어떻게 피커 뷰의 한 선택된 행을 지정할 수 있습니다?
버튼 동작에서 선택한 행을 선택기로 표시 하시겠습니까? – Sujit
정확하게 코어 데이터에서 선택된 해당 객체의 값을 수정할 수 있습니다. – ammari