我正在使用 Xcode8
并在一个 OC mix swift 项目上工作
在我的项目中使用新的 viewController
我正在使用 swift 2.3
我创建 ViewController
只是通过创建新文件并选中(也创建 XIB 文件)(这样它就可以自动绑定(bind) VC
由于我过去的代码是 OC,所以我用
_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/