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