【发布时间】:2018-03-09 21:46:20
【问题描述】:
如果文本框的值等于 nil,我想取消展开转场。 以下是当前代码。我使用故事板连接保存按钮(将文本值保存到数据库中)。我正在考虑使用 poptorootviewcontroller 来确保教科书在执行 segue 之前具有值。他们有什么方法可以用当前代码做到这一点吗?
mainView 内的代码以展开回-
@IBAction func unwind(_ segue: UIStoryboardSegue){
print("Back in TableView")
}
childView 上的按钮执行 unwind segue-
@IBAction func saveAddress(_ sender: UIButton) {
// save values to dictionary save dictionary to firebase under user, uid, addresses
// uialert controller if fields are not completed do not allow segue if fields are not complete
// perform segue to addresstableview
let addy1: String = address1Txt.text!
let addy2: String = address2Txt.text!
let aptNum: String = aptTxt.text!
let city: String = cityTxt.text!
let state: String = stateTxt.text!
let zip: String = zipTxt.text!
// add UIAlert controller for address field == nothing
if addy1.isEmpty && aptNum.isEmpty && city.isEmpty && state.isEmpty && zip.isEmpty
{
//add UIAlert Controller DO NOT PERFORM SEGUE IF TRUE
}
Address.sharedInsance.typedNewAddress = addy1 + "," + addy2 + "," + aptNum + "," + city + "," + state + "," + zip
print("address save print",addy1, addy2, aptNum, city, state, zip)
let key = ref.child("address").childByAutoId().key
let setter = false
let addyDict = ["address line 1":addy1,"address line 2":addy2,"apt Number":aptNum,"city":city,"state":state,"zip":zip,"keyID": key, "setter": setter] as [String : Any]
let userID = Auth.auth().currentUser?.uid
let childUpdates = ["/address/\(key)": addyDict]
ref.child("users").child(userID!).updateChildValues(childUpdates)
}
【问题讨论】:
-
你应该从整个原始视图控制器创建一个segue,而不是仅仅将按钮转到目标视图控制器。那么您可以随时触发 segue,而不是取消已经触发的 segue。
标签: ios swift textbox segue unwind-segue