0
したがって、私は2つのコンポーネントを持つUIPickerViewを持っています。最初のものは「食器棚」と呼ばれ、2番目の「引き出し」です。彼らはCoreData Cupboardsで1対1の関係を持っています< - >>引き出し。 Cupboardを選択すると、一致する引き出しのみが表示されます。私はその関係をどのように働かせるかわからない。食器棚を示すために私が持っているものだ最初のコンポーネントに依存するUIPickerView
:
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 2
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if(component==0){
return cupboards.count
}
xxxx
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if(component==0){
return cupboards[row].name
}
xxxx
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if(component==0){
}
}
は事前に
更新ありがとう:
は今そのようにそれを手に入れたが、私は結果を得ることはありません。
あなたがフェッチ結果とcupboardDrawers配列を作成し、更新する必要がvar cupboardDrawers = [Drawer]()
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if(component==0){
let request: NSFetchRequest<Drawer> = Drawer.fetchRequest()
request.predicate = NSPredicate(format: "cupboard == %@", cupboards[row].name!)
do{
let result = try mgdContext.fetch(request)
cupboardDrawers = result
addEatDataPicker.reloadAllComponents()
}catch{
print(error.localizedDescription)
}
}
}
ねえありがとう、私はYourPredicateの代わりに使うかわから迅速に新しくありませんよ。 cupboardDrawersは 'var cupboardDrawers = [Drawer]()'にする必要がありますか? – Sane
あなたは歓迎です;)はい、それは正しいです、述語はあなたのエンティティを設定した方法に依存します。例えばNSPredicate(書式: "cupboard ==%@"、cupboards [row] .name) –
'no items found'コール – Sane