Я реализую UIPickerView
, заселенный от объектов parse.com. Я хочу показать выбранную строку строки из pickerView
в TextField
.Не удалось отличить значение исключения типа в UIPickerView
При выполнении, когда пользователь выбирает подряд TextField
показывает текст, но затем при попытке передать TextField
текст на другой ViewController
, приложение запускает исключение:
Не удалось ввергнуть значение типа
Это код:
class CitaServicio3: UIViewController,UITextFieldDelegate,UIPickerViewDataSource,UIPickerViewDelegate {
var receivedNombre: String = ""
var receivedEmail: String = ""
var receivedCelular: String = ""
var receivedTelefono: String = ""
var receivedFecha: String = ""
var receivedHora: String = ""
@IBOutlet weak var vehiculoPickerView: UIPickerView!
@IBOutlet var vehiculoTextField:UITextField!
var pickerString:NSMutableArray = []
override func viewDidLoad() {
super.viewDidLoad()
print("receivedNombre=",receivedNombre)
print("receivedEmail=",receivedEmail)
print("receivedCelular=",receivedCelular)
print("receivedTelefono=",receivedTelefono)
print("receivedFecha=",receivedFecha)
print("receivedHora=",receivedHora)
let query = PFQuery(className: "autos")
query.findObjectsInBackgroundWithBlock({ (objects : [PFObject]?, error: NSError?) -> Void in
if error == nil {
for object in objects! {
print (object["modelo"])
self.pickerString.addObject(object["modelo"] as! String)
}
}
self.vehiculoPickerView.reloadAllComponents()
})
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
{
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
{
return self.pickerString.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
{
return self.pickerString[row] as? String
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
self.vehiculoTextField.text = self.pickerString[row] as? String
}
@IBAction func continuarButton(sender: AnyObject)
{
let vehiculoCita = vehiculoTextField.text
if (vehiculoCita!.isEmpty){
let myAlert = UIAlertController(title: "Faltan datos", message: "Su vehiculo es obligatorio", preferredStyle: UIAlertControllerStyle.Alert)
let OKAlert = UIAlertAction(title: "Reintentar", style: UIAlertActionStyle.Default, handler: nil)
myAlert.addAction(OKAlert)
self.presentViewController(myAlert, animated: true, completion: nil)
return
}
[self .performSegueWithIdentifier("cita3a4", sender: self)]
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
print (segue.identifier)
print (vehiculoTextField.text)
if "cita3a4" == segue.identifier {
let cita4: CitaServicio4 = segue.destinationViewController as! CitaServicio4
cita4.receivedNombre = receivedNombre
cita4.receivedEmail = receivedEmail
cita4.receivedCelular = receivedCelular
cita4.receivedTelefono = receivedTelefono
cita4.receivedFecha = receivedFecha
cita4.receivedVehiculo = vehiculoTextField.text!
}
}
Что плохого в код?
«Что не так в коде» Вы говорите нам. В какой строке происходит ошибка? Каково точное сообщение об ошибке? Не просто бросайте весь код на стену, как спагетти, и ожидайте, что мы его очистим. – matt
@ Matt, это полное сообщение: Не удалось бросить значение типа 'Pedro_Villarejo_App_Clientes.CitaServicio3' (0x1032475f0) к 'Pedro_Villarejo_App_Clientes.CitaServicio4' (0x103247990), сразу после печати: печать (segue.identifier) печати (vehiculoTextField.text) – mvasco