我知道这里有很多意想不到的值问题,但我尝试了其他方法,但他们不适合我。底部的功能是通过另一个视图控制器上的按钮调用的。基本上问题是这段代码按预期工作,表单元素具有DatePicker作为输入视图,并且当值更改时它更新startDatePickerField.text,所以我知道startDatePickerField.text不是空的,因为它显示在屏幕。但是,当调用testForValidity()函数从包含我们工作的另一个视图控制器调用时,我得到“意外地发现零,而解包选项值错误”。所有的网点连接正确,所以我知道不是这样。意外地发现零,同时展开一个可选的值uitextfield
class popoverTableViewController: UITableViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet var startDatePickerField: UITextField!
override func viewDidLoad() {
let startDatePicker:UIDatePicker = UIDatePicker()
startDatePicker.datePickerMode = UIDatePickerMode.dateAndTime
startDatePickerField.inputView = startDatePicker
startDatePicker.minuteInterval = 5
startDatePicker.addTarget(self, action: #selector(popoverTableViewController.startDatePickerValueChanged(_:)), for: UIControlEvents.valueChanged)
}
@IBAction func startDateDidBegin(_ sender: AnyObject) {
}
func startDatePickerValueChanged(_ sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.long
dateFormatter.timeStyle = DateFormatter.Style.short
startDatePickerField.text = dateFormatter.string(from: sender.date)
finishDateTime = sender.date
}
这错误的功能:
func testForValidity() {
print(startDatePickerField.text)
}
哪里testForValidity()?在popoverTableViewController?你打电话过得怎么样? – Shades
testForValidity()在popoverTableViewController中是的,这是在按下按钮后从另一个类的简单调用。我意识到这个方法调用了我的popoverTableViewController的一个新实例,这就是为什么我得到错误。我认为修复与NSNotificationCentre有关,但我不确定如何实施它。 – user2662468