0

My problem is that when I run the project and click the first textfield ( the others are empty for now ) the app crashes with this error :

Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UICompatibilityInputViewController: 0x12dd4c600> should have parent view controller:<Sai_Service.ServiceAppointment: 0x12dd151a0> but requested parent is:<UIInputWindowController: 0x12e00b600>'.

This is my code:

import UIKit

class ServiceAppointment: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

    @IBOutlet weak var ScrollView: UIScrollView!

    @IBOutlet weak var pickerView: UIPickerView!

    @IBOutlet weak var StateField: UITextField!

    @IBOutlet weak var CityField: UITextField!

    @IBOutlet weak var VehRegNumberField: UITextField!

    @IBOutlet weak var LocationField: UITextField!

    @IBOutlet weak var CurrentKmsField: UITextField!

    @IBOutlet weak var apptDateFIeld: UITextField!

    @IBOutlet weak var apptTypeField: UITextField!

    @IBOutlet weak var pickupField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        ScrollView.contentSize.height = 1000
        pickerView.hidden = true;
        StateField.text = States[0]
        self.pickerView.dataSource = self;
        self.pickerView.delegate = self;
        self.StateField.inputView = pickerView         
            }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    var States = ["Italy","United States","UK","France"]

    //MARK: - Delegates and data sources
    //MARK: Data Sources
    func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }
    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return States.count
    }

    //MARK: Delegates
    func pickerView2(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
        return States[row]
    }

    func pickerView3(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        StateField.text = States[row]
        pickerView.hidden = true;
    }
    func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
        pickerView.hidden = false
        return false
    }
}

I think it's a problem of multiple view, so I wrote in the viewDidLoad:

self.StateField.removeFromSuperView() 

but then all the ScrollViews disappeared obviously.

How I can make this work so that when I press the textfield, the pickerview appears?

0 Answers0