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

iOS中UIButton绑定Segue点击任意按钮均跳转同一页面如何解决

应用运行界面截图

问题根源

你当前的跳转判断逻辑存在错误:

  • 你给第一个集合视图内所有按钮设置的restorationIdentifier为05(对应`indexPath.row`取值,`firstData`总数为6),第二个集合视图按钮的id为611
  • 现有判断逻辑为「只要id小于6就跳Good Work页面,其余跳Nice Try页面」,相当于把第一个集合视图的所有按钮(包括标题为Nice Try、id为1的按钮)全部分配到了Good Work的跳转逻辑里,根本没有区分第一个集合视图内部不同按钮的跳转目标,自然会出现点击第一个集合视图任意按钮都跳转到Good Work关联页面的问题。
修复方法

直接修改按钮点击的IBAction方法逻辑,不要用id和数组总数做判断,改为匹配按钮对应的实际标题即可,替换后的代码如下:

@IBAction func Buttons(_ sender: Any) {
    guard let btn = sender as? UIButton, let currentTitle = btn.currentTitle else { return }
    switch currentTitle {
    case "Good Work":
        performSegue(withIdentifier: "Good Work", sender: btn)
    case "Nice Try":
        performSegue(withIdentifier: "Nice Try", sender: btn)
    default:
        // 未配置跳转的按钮不做响应
        break
    }
}

额外优化建议

  • 不建议使用restorationIdentifier存储业务索引值,这个属性的设计用途是UI状态恢复,存业务数据容易引发意料外的问题。如果需要传递按钮位置,可以使用UIButton自带的tag属性,或者通过闭包、代理在cell返回时把对应indexPath回传给控制器,稳定性更高。
  • 后续如果需要给更多按钮添加跳转,直接在switch分支中新增对应匹配规则即可。

内容的提问来源于stack exchange,提问作者Dakota Davis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:57:26