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
仅在 iOS 8 中,iOS @IBOutlet 视图全部为零
无法在新的自定义类 Xcode 11 中连接到 IBOutlet
XCode 4 Connection Inspector 在源代码中的新 IBOutlet 后未刷新
ios StoryBoard - UIImageView 的子类显示为 UIImageView 而不是 IBOutlet 变量中的子类