You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

误删登录验证Segue后如何修复?无需重启的方案咨询

不用重启应用的修复方案

别担心,这个问题很常见,咱们不用动项目结构,只需要调整Segue的触发方式,把验证逻辑加回去就行:

  • 首先,先把Storyboard里登录按钮和Segue的直接绑定给取消掉。右键点登录按钮,找到里面那个直接触发Segue的选项(比如显示“show 目标控制器”的那一项),删掉它——这就是现在点按钮直接跳转的原因。
  • 然后给登录按钮加个点击事件的IBAction(要是之前有就不用重新加了),在这个方法里写你的验证逻辑,只有验证通过才手动触发Segue:
    @IBAction func loginBtnTapped(_ sender: UIButton) {
        // 先拿文本框里的账号密码(顺便去掉首尾空格)
        let inputUsername = usernameTxtField.text?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
        let inputPassword = passwordTxtField.text?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
        
        // 这里换成你自己的验证逻辑,比如和后台接口校验或者本地预设值比对
        if inputUsername == "validUser" && inputPassword == "correctPass" {
            // 验证过了,手动触发你新建的那个Segue
            performSegue(withIdentifier: "你的Segue同名标识符", sender: self)
        } else {
            // 验证失败,给用户弹个提示
            let alert = UIAlertController(title: "登录失败", message: "账号或密码不正确", preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "好的", style: .default))
            present(alert, animated: true)
        }
    }
    
  • 最后确认下Storyboard里那个新Segue的标识符,和你代码里performSegue里写的完全一致——选中Segue,在右侧Attributes Inspector里看Identifier字段就行。

改完之后重新编译运行一次,点击登录按钮就会先走验证逻辑,没问题才跳转了,完全不用重启整个应用或者重构项目。要是你之前有在prepare(for:sender:)里传数据的逻辑,也不受影响,手动触发Segue同样会调用这个方法。

内容的提问来源于stack exchange,提问作者Zach Wilcox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:03:59