Sono un principiante assoluto su iOS Dev e voglio creare una piccola applicazione iOS. Su questa applicazione, 3 UIPickerViews
devono visualizzare dati diversi.Più UIPickerView nello stesso UIView
Il mio problema è sul display. Sono abituato a svilupparlo su telefono Android o Windows e non capisco come popolare lo UIPickerViews
con dati diversi.
Questo è il codice che ho già scritto:
//
// ViewController.swift
// iphoneVersion
//
// Created by fselva on 13/05/2015.
// Copyright (c) 2015 fselva. All rights reserved.
//
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate{
@IBOutlet weak var pickerView1: UIPickerView!
@IBOutlet weak var pickerView2: UIPickerView!
@IBOutlet weak var pickerView3: UIPickerView!
var test = ["Todo","Waiting","Maybe","Inbox","Note"]
var test2 = ["@Office","@Computer","@Home","@Meeting", "@Read", "@Achat", "@Call"]
override func viewDidLoad() {
super.viewDidLoad()
pickerView1.tag = 1
pickerView2.tag = 2
pickerView3.tag = 3
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView : UIPickerView!) -> Int{
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
if pickerView2.tag == 2 {
return test.count
} else if pickerView3 == 3{
return test2.count
}
return 1
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
if pickerView2 == 2 {
return test[row]
} else if pickerView3 == 3{
return test2[row]
}
return ""
}
}
@IBOutlet weak var pickerView1: UIPickerView!
è stata creata automaticamente con Ctrl + clic dallo storyboard alla ViewController.swift.
Attualmente il primo UIPickerView
non visualizza nulla. Il secondo dovrebbe visualizzare test
e il terzo visualizza test2
.
Dopo ore di indagini su Internet, ho sentito parlare dei tag per definire chi deve mostrare cosa, ma non funziona.
Sto facendo qualcosa di sbagliato, mi manca qualcosa da qualche parte?
Grazie per la risposta, Controllerò cosa delegare è capire cosa mi hai detto. Inoltre proverò la soluzione che dici, grazie. – fselva
metti pickerView1.delegate = self in viewDidLoad() – ChikabuZ
Ok, funziona come un incantesimo, mi mancava solo il delegato ..... Grazie mille! – fselva