我知道這裏有很多意想不到的值問題,但我嘗試了其他方法,但他們不適合我。底部的功能是通過另一個視圖控制器上的按鈕調用的。基本上問題是這段代碼按預期工作,表單元素具有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