如何停止跳转下一个视图控制器?(迅速)

Hap*_*han 0 ios segue uistoryboardsegue swift swift3

我使用SEGUE从一个发送数据viewControllerdestinationViewController.我设置按钮并使用push segue连接到下一个视图控制器.在第一个视图中,我设置了一个布尔值来检查图像是否为空.如果有空,则会弹出警报提醒用户.如果成功,它会将图像发送到下一个视图控制器.

虽然我可以传输图像并弹出警报,但如果有空的话,它也会跳转到下一个视图控制器.此外,跳转到下一个视图控制器后,而不是在第一个视图控制器中弹出警报

现在,这是代码

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if Jumpsuit.isHidden == false && self.Hair.image != nil && self.Jumpsuit.image != nil && self.Shoes.image != nil {

        let DestViewController : ChooseBGViewController = segue.destination as! ChooseBGViewController

        DestViewController.imgHair = Hair.image
        DestViewController.imgJumpsuit = Jumpsuit.image
        DestViewController.imgShoes = Shoes.image
        DestViewController.dressingtype = 1
    } else if Jumpsuit.isHidden == false && self.Hair.image == nil || self.Jumpsuit.image == nil || self.Shoes.image == nil {
        let alert = UIAlertView()
        alert.title = "No Image"
        alert.message = "Please check again"
        alert.addButton(withTitle: "OK")
        alert.show()

    }
}
Run Code Online (Sandbox Code Playgroud)

如何停止跳转到下一个视图控制器并在第一个视图控制器中弹出警报.请帮忙!

Nir*_*v D 5

您可以使用shouldPerformSegue(withIdentifier:sender:)它并Bool根据您的条件返回值.

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
    if Jumpsuit.isHidden == false && self.Hair.image == nil || self.Jumpsuit.image == nil || self.Shoes.image == nil {
         //Show UIAlertController instead of UIAlertView it is deprecated
         return false
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)