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

仅主Storyboard视图控制器可打开URL,多页面控制器失效

问题解决思路

这个错误的核心原因是Storyboard里的ViewController未正确关联到你自定义的UIViewController子类,系统默认使用了基础UIViewController类,而该类不存在WebButton对应的IBOutlet/IBAction定义,触发了KVC异常。

具体修复步骤

  • 检查VC类绑定
    打开Storyboard,选中出问题的ViewController,切换到右侧「Identity Inspector」(第三个标签,身份证图标),确认「Class」字段已选择你创建的自定义UIViewController子类(而非默认的UIViewController)。若之前修改过类名,可先清空Class字段回车,再重新选择正确类。

  • 清理无效关联
    选中目标ViewController,右键点击其左上角黄色视图控制器图标,在弹出菜单的「Outlets」「Received Actions」中,删除标红的WebButton关联;也可通过右侧「Connections Inspector」(第四个标签,箭头图标)检查所有关联项,移除无效/标红条目。

  • 重新绑定IBAction
    分屏打开自定义ViewController代码文件与Storyboard,右键点击Storyboard中的WebButton,拖拽至代码区域,重新创建GoToWebsite动作关联,覆盖或新建均可。完成后重新Build运行。

额外排查点

  • 若自定义类属于其他模块/带有命名空间,需在Storyboard的Class字段填写完整类名(如YourAppModule.CustomViewController)。
  • 清理项目缓存:按Command + Shift + K清理Build文件夹,再按Command + Option + Shift + K清理Derived Data,之后重新编译。
// 确保自定义ViewController类结构正确
class CustomViewController: UIViewController {
    // 若有IBOutlet,需与Storyboard中Button关联匹配
    @IBOutlet weak var WebButton: UIButton!
    
    @IBAction func GoToWebsite(_ sender: UIButton) {
        if let url = URL(string: "https://www.google.com") {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:42:03