iOS @IBOutlet views all be nil only in iOS 8

标签 ios objective-c swift xcode xib

我正在使用 Xcode8 并在一个 OC mix swift 项目上工作

在我的项目中使用新的 viewController 我正在使用 swift 2.3 我创建 ViewController 只是通过创建新文件并选中(也创建 XIB 文件)(这样它就可以自动绑定(bind) VC 由于我过去的代码是 OC,所以我用

初始化我的 VC
_theViewController = [[TheViewController alloc] init];

并希望使用 @IBOutlet View 设置框架或其他初始化内容

一切正常(xib 按预期加载,在 viewDidLoad 中断后,我可以在 iOS 9 和 +

中看到那些 Outlet 实例(不是 nil)

但在 iOS 8 下,每当 viewDidLoad viewWillAppear viewDidAppear 时,那些 IBOutlet View 总是 nil,在我之后评论所有初始化的东西,似乎它只是没有加载我想要的 xib View

我已经尝试了一些我能找到的解决方案,但似乎没有用(我确定 xib 与 VC 链接。(毕竟它是由 xcode 创建和链接的)覆盖某些功能或其他希望强制加载它的方式)

任何建议将不胜感激T_T

PS:我没有使用 Storyboard,只是使用这个 xib tech 4 快速且可视化的开发

最佳答案

要使用 nib 文件初始化 View Controller 对象,以编程方式创建 View Controller 类并使用 init(nibName:bundle:) 方法对其进行初始化。

当它的 View 被请求时, View Controller 从 nib 文件加载它们。

API 引用:https://developer.apple.com/reference/uikit/uiviewcontroller

关于iOS @IBOutlet views all be nil only in iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40733448/

相关文章:

ios - 警报中预加载的文本

iphone - 如何用动画缩放 View

iphone - 使用 Storyboard 在 iPhone 上 Split View

ios - Swift 通知中心导致内存泄漏

ios - Xcode 更改文件和文件夹的命名以供批准

ios - 我如何获得当前的事件 View Controller ?

ios - 如何更改 Kal 日历中的单元格高度

objective-c - 在 OS X 中以编程方式打开 map 应用程序

SwiftUI 教程 PresentationButton Bug

ios - 处理 Firebase 查询中由于元素数量较多而导致的内存使用情况