仅在 iOS 8 中,iOS @IBOutlet 视图全部为零
Posted
技术标签:
【中文标题】仅在 iOS 8 中,iOS @IBOutlet 视图全部为零【英文标题】:iOS @IBOutlet views all be nil only in iOS 8 【发布时间】:2016-11-22 03:48:07 【问题描述】:我正在使用Xcode8
并参与了一个 OC mix swift 项目
在我的项目中使用我的新viewController
,我正在使用swift 2.3
我创建ViewController
只需创建新文件并检查(也板条箱XIB文件)(因此它可以自动绑定VC
由于我过去的代码是 OC,所以我用
_theViewController = [[TheViewController alloc] init];
并想用@IBOutlet
视图设置框架或其他初始化事物
一切正常(xib 按预期加载,在 viewDidLoad 中断后,我可以在 ios 9 和 + 中看到那些 Outlet 实例(不是 nil)
但在 iOS 8 下,无论何时在 viewDidLoad
viewWillAppear
viewDidAppear
那些 IBOutlet
视图总是为零,并且在我评论所有初始化的东西之后,它似乎只是没有加载我想要的 xib
视图
我尝试了一些我能找到但似乎不起作用的解决方案(我确定 xib 与 VC 链接。(它毕竟是由 xcode 创建和链接的)覆盖某些函数或希望强制加载它的其他方式)
任何建议将不胜感激 T_T
PS:我没有使用故事板,只是使用这个 xib tech 4 快速且可查看的开发
【问题讨论】:
【参考方案1】:要使用 nib 文件初始化视图控制器对象,请以编程方式创建视图控制器类并使用 init(nibName:bundle:)
方法对其进行初始化。
当它的视图被请求时,视图控制器从 nib 文件中加载它们。
API 参考:https://developer.apple.com/reference/uikit/uiviewcontroller
【讨论】:
所以,我一直都错了。当我简单地运行 [alloc init] int iOS 9+ 自动做init(nibName:bundle:)
things 4 me 时?甚至我的工具在 iOS 9+ 中工作,我应该用init(nibName:bundle:)
int 替换我的所有 init 这种情况吗?以上是关于仅在 iOS 8 中,iOS @IBOutlet 视图全部为零的主要内容,如果未能解决你的问题,请参考以下文章
由于 IBOutlet,iOS 应用程序在 didFinishLaunchingWithOptions 中崩溃
应用程序仅在 iPhone 8 iOS 14.4.1 上因内存不足而崩溃