我无法在 ViewController.swift 中链接 IBOutlets

Posted

技术标签:

【中文标题】我无法在 ViewController.swift 中链接 IBOutlets【英文标题】:I can't link IBOutlets in ViewController.swift 【发布时间】:2014-12-24 14:25:37 【问题描述】:

我是 ios 编程新手,开始时我正在尝试在情节提要中创建一个表格视图。创建它并将其作为数据源链接到视图控制器后,我尝试将其链接到 ViewController.Swift,但它不允许我放置 IBOUTlet 或 IBAction。我做了一些新项目并尝试创建 IBOutlet,但它也不会让我在这些项目上这样做。我不明白出了什么问题,有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

您正在尝试哪种创建 IBAction/IBOutlet 的方法?

我的首选方法是:

在编辑器中打开故事板

在情节提要中选择视图控制器

打开助理编辑器(领结,右上角)

检查助手编辑器显示视图控制器源(应该是自动的,但您可能需要手动执行)

在情节提要中右键单击控件并拖动到助理编辑器中的适当位置 - 当您松开时,您应该会看到一个对话框,允许您选择 Outlet 或 Action。

如果这不起作用,您能告诉我们发生了什么或您正在尝试什么其他方法吗?

【讨论】:

我正在尝试使用此方法,但是当我右键单击并拖动到 ViewController.Swift 中时,它确实允许我从表视图中插入插座或操作。我可以使用其他方法来链接 IBOutlet 和 IBAction 吗? 这很奇怪,它应该可以工作,并表明有其他问题。你说 Viewcontroller.swift,你的视图控制器子类化了吗?您需要创建自己的 ViewController 的子类,然后将其链接到情节提要中的视图控制器 - 请参阅此链接以获取另一个 SO 问题,其中很好地描述了如何做到这一点:***.com/questions/19370208/…。 另外,这听起来与您的问题相似:***.com/questions/21247728/…【参考方案2】:

我也遇到了同样的问题,IBOutlet 和 IBAction 不能在 ViewController 中声明。我可以分享我对这些问题的解决方案:

    打开您的项目 Main.storyboard; 用黄色按钮选择视图; 打开显示身份编辑器,并将类更改为您声明的对象。 完成上述步骤后,您应该使用 Ctrl-Drag 到相应的视图控制器。

一般来说,第一步应该是确认哪个视图控制器将使用您的 IBAction 和 IBOutlet。然后将类更改为您自己想要的类。

【讨论】:

以上是关于我无法在 ViewController.swift 中链接 IBOutlets的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 10.1 ViewController.h 与 ViewController.swift

如何将计时器中的数据传递给新的 ViewController (Swift 3)

无法在 Objective-C .m 文件中调用 Swift 方法

在 Objective C 文件中导入 ViewController.swift

通过另一个 viewController 显示一个 viewController,Swift

在GameScene和ViewController Swift之间移动