iOS:Xcode 6 中的 IBOutlet 为零

Posted

技术标签:

【中文标题】iOS:Xcode 6 中的 IBOutlet 为零【英文标题】:iOS: IBOutlet nil in Xcode 6 【发布时间】:2014-07-09 19:08:00 【问题描述】:

使用 ios 8 和 Xcode 6。我使用情节提要在控制器中嵌入了 UIWebView,并将所有内容连接起来。但是,当我运行它时,webView 将为零。有什么想法吗?

【问题讨论】:

你是如何初始化你的视图控制器的? 我在从故事板实例化视图控制器时遇到了同样的问题。 这里有同样的问题。当视图控制器加载时,我的 Web 视图始终为零 我也有同样的问题。我的其他视图控制器很好,现在在 SB 中创建的任何新视图控制器都具有 nil IBOutlets 修改webView的弱@property。 【参考方案1】:

帮助我的是this answer #1 here。

    清理项目 关闭 XCode 删除~/Library/Developer/Xcode/DerivedData/的所有内容 重启 MacOs

完全按照这个顺序。

【讨论】:

【参考方案2】:

修改 webView 的弱 @property。

【讨论】:

更改为 strong 没有帮助。【参考方案3】:

我自己也遇到了这个问题,终于找到了解决办法: 在某些时候,Apple 改变了 View Controller 与其 xib 文件链接的方式。 Xcode 不再自动匹配,例如 ViewController.swift 和 ViewController.xib。相反,您必须在代码中明确指定 nib 名称。尝试调用:

NSBundle.mainBundle().loadNibNamed("ViewController", owner: self, options: nil)

或者,在目标 C 中:

[[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:self options:nil];

在您的 VC 初始化程序中,在您使用任何 IBOutlets 之前(将“ViewController”替换为您的视图控制器的名称)。这就是最终对我有用的方法(在 Swift 中)。

另见:

Are view controllers with nib files broken in ios 8 beta 5?

Swift proper way to load xib file

【讨论】:

以上是关于iOS:Xcode 6 中的 IBOutlet 为零的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6.3 错误 - 无法在情节提要中创建 IBOutlet 引用或使用自定义 UIViewController

如何将 IBOutlet 标记为可用于特定 iOS 版本

仅在 iOS 8 中,iOS @IBOutlet 视图全部为零

无法在新的自定义类 Xcode 11 中连接到 IBOutlet

XCode 4 Connection Inspector 在源代码中的新 IBOutlet 后未刷新

ios StoryBoard - UIImageView 的子类显示为 UIImageView 而不是 IBOutlet 变量中的子类