1
我正在检查我的标签和图像(图像是否与标签链接,因此只是检查标签)以查看用户是否可以继续。如果他已经填充所有的细节(使用pickerView和datePicker),用户可以继续。否则,用户会收到警报以填写详细信息,并应保持在同一页面上。if-else之后不需要的segue Swift
以下是我正在使用的代码。一切正常,但应用程序收到警报后执行不需要的时间。
不需要的问题是两种类型:
- 如果我直接点击进入下一页(不接触pickerViews),它会告诉我的警告,但是当我点击确定,它会执行一个原因请看上一页。另一方面,如果我根据需要完成所有细节,请单击NEXT(根据需要将我带到下一个视图控制器),并且如果从该视图控制器单击BACK返回到初始选取器视图的所有内容,都将按需要工作。但是,如果我不点击下一步而不执行选取器视图操作,则此时它会向我显示警报并将我带到NEXT视图控制器。
所以基本上问题是,
- ,如果我不填细节,我得到警报,并获得SEGUE上一视图控制器
- 如果我填写详细信息,点击下一步,比点击回到同一个选择器选择视图控制器,然后点击下一个没有触摸我得到一个继续下一个视图控制器。
我只是希望它留在警报后的当前视图控制器(选择器视图选择页面)。我究竟做错了什么?
代码如下:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (xLabel.text! != "" && yLabel.text! != "") {
var user = PFUser.currentUser()
var myGender: AnyObject! = user["gender"]
var myName: AnyObject! = user["name"]
var DestView : UserDetailViewController = segue.destinationViewController as UserDetailViewController
DestView.uDetailName = "\(myName)"
DestView.uDetailGender = "\(myGender)"
DestView.uDetailBar = "\(xLabel.text!)"
DestView.uDetailDate = dateLabel.text!
DestView.uDetailBarPic = PickerViewImage.image!
DestView.uDetailQuantity = "\(yLabel.text!)"
} else {
self.displayAlert("Could not proceed", error: "Please select 'Location' and 'Number of people' to proceed")
}
}
func displayAlert(title:String, error:String) {
var alert = UIAlertController(title: title, message: error, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in
self.dismissViewControllerAnimated(true, completion: nil)
}))
self.presentViewController(alert, animated: true, completion: nil)
}
我会很感激你的帮助。谢谢。
谢谢。我的理解是,现在我首先检查是否符合条件,如果满足,则继续执行,否则将显示警报。所以现在我有两个功能 - 一个应该执行带有标识符和prepareForSegue的Segue。但我仍然遇到同样的问题。是因为我搞乱了目标视图控制器吗?我很抱歉,我是编码方面的新手,所以可能在这里讲愚蠢。希望你的帮助。谢谢。 – 2015-02-06 15:49:07
您可以谈谈选取器视图,但是您正在检查两个标签的值,因此您可能在将数据从选取器视图复制到这些标签时,或者与您如何将故事板上的链接复制到故事板时有一些问题 - 这里的代码不会导致你所描述的问题 – Paulw11 2015-02-06 20:19:21
非常感谢。我会检查我的代码,看看我能否解决问题。 – 2015-02-07 02:41:07