Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift ScrollView、TextField和pickerview故障_Swift_Uiscrollview_Uitextfield_Uipickerview - Fatal编程技术网

Swift ScrollView、TextField和pickerview故障

Swift ScrollView、TextField和pickerview故障,swift,uiscrollview,uitextfield,uipickerview,Swift,Uiscrollview,Uitextfield,Uipickerview,我的问题是,当我运行项目并单击第一个文本字段时,其他文本字段暂时为空,应用程序会崩溃,出现以下错误: 由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“子视图控制器:应具有父视图控制器:但请求的父视图控制器为:” 这是我的代码: import UIKit class ServiceAppointment: UIViewController, UIPickerViewDelegate, UIPickerViewDataSour

我的问题是,当我运行项目并单击第一个文本字段时,其他文本字段暂时为空,应用程序会崩溃,出现以下错误:

由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“子视图控制器:应具有父视图控制器:但请求的父视图控制器为:”

这是我的代码:

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
    }
}
我认为这是多视图的问题,因此我在viewDidLoad中写道:

但随后所有的滚动视图都明显消失了


我如何才能做到这一点,以便在按下文本字段时,出现pickerview?

我认为您的故事板或XIB有问题。你的UI在哪里?我有视图和scrollview它是一个子视图,然后文本字段在scrollview中我是说你的控制器在哪里?在故事板中还是在XIB中?好的,所以问题在其他地方。检查这个线程:我已经看到了,但是我没有解决这个问题
self.StateField.removeFromSuperView()