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

Xcode开发iOS应用时ViewController返回按钮点击失效报错如何解决?

问题原因与修复方案

核心错误原因

报错-[UIViewController back2:]: unrecognized selector sent to instance表示你调用back2方法的对象是系统原生的UIViewController基类实例,而不是你自己编写的SecondViewController子类实例,基类本身没有实现back2、back方法,所以触发崩溃。
该问题的常见诱因是:你仅在故事板中给第二个页面设置了Storyboard ID为SecondVC,但没有给对应的视图控制器绑定自定义类SecondViewController,导致instantiateViewController方法创建出来的是默认的UIViewController对象。

具体修复步骤

  • 打开项目中的故事板文件,选中第二个页面对应的视图控制器
  • 切换到右侧面板的「身份检查器」(面板顶部左数第三个图标)
  • 在Custom Class分组下的Class输入框中填写SecondViewController,按下回车确认配置生效
  • 重新运行项目即可解决崩溃问题

可选优化方案

你当前的两个返回方法分别适配push跳转和present跳转场景,可合并为同一个方法,避免按钮绑定错误导致的返回异常,优化后的SecondViewController代码如下:

import UIKit

class SecondViewController: UIViewController {
    
    @IBAction func back(_ sender: Any) {
        // 自动判断当前页面的展示方式,选择对应的返回逻辑
        if let navigationController = self.navigationController, navigationController.viewControllers.count > 1 {
            navigationController.popViewController(animated: true)
        } else {
            self.presentingViewController?.dismiss(animated: true)
        }
    }
}

优化后只需保留一个返回按钮绑定上述back方法即可,两种跳转场景都可以正常返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:24:00