Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从xib添加子视图-iOS 8与iOS 9_Ios_Swift_Ios8_Swift2 - Fatal编程技术网

从xib添加子视图-iOS 8与iOS 9

从xib添加子视图-iOS 8与iOS 9,ios,swift,ios8,swift2,Ios,Swift,Ios8,Swift2,这是我要添加的viewController(视图位于.Xib文件中) 我从另一个viewController中这样添加它 let placeholderVC = EmptyFeedViewController() addChildViewController(placeholderVC) view_placeholder = placeholderVC.view 在iOS 9上工作正常,但在iOS 8上“lbl_描述”为零 如何为两个操作系统加载视图?由于您使用的是Xibs,为了填充IBOut

这是我要添加的viewController(视图位于.Xib文件中)

我从另一个viewController中这样添加它

let placeholderVC = EmptyFeedViewController()
addChildViewController(placeholderVC)
view_placeholder = placeholderVC.view
在iOS 9上工作正常,但在iOS 8上“lbl_描述”为零
如何为两个操作系统加载视图?

由于您使用的是Xibs,为了填充
IBOutlets
,您应该使用指定的初始值设定项创建视图控制器的新实例


这些属性名称伤害了我的眼睛。这只是一个可能的解决方案:尝试将Xib文件本身作为UIView,而不是UIViewController。调用itdasdom时使用addSubview方法谢谢,非常有用:| Rob我在这里使用的是.xib,不是故事板,但是是的,这会起作用@kaizoku我怎么做?我以后仍然需要对UIViewController的引用根据视图生命周期和延迟加载,您将能够使用这些插座从视图进入导航堆栈,简短地从/在
-视图将出现:
或更高版本,在视图生命周期的早期,无法保证这些插座已为您加载,因此,在
-viewDidLoad
中,您可能会发现它们
nil
——正如您已经体验到的那样。那么加载顺序在iOS8和iOS9之间发生了变化?或者我只是(非常)幸运,在我在iOS8上测试之前没有让应用程序崩溃(直到今天我才完全忘了这么做-在我身上是假的)?工作-当然,但是输入代码的时间很长,我想在我们停止支持iOS8后尽快删除它(是的,我知道,我们还有时间),所以我
init(){super.init(nibName:“EmptyFeedViewController”,bundle:nil)}
在我的EmptyFeedViewController中,这是一个好的解决方案吗?@Kireyin当然!重要的一点是,当使用Xibs时,你调用
initWithNibName:bundle:
初始值设定项。将其隐藏在VC中不应改变结果:)嗯,是的。我的意思是:这是一种足够普遍的方式,可以让人们对它不感到惊讶吗?我们的属性命名约定显然已经足够令人惊讶了:D
let placeholderVC = EmptyFeedViewController()
addChildViewController(placeholderVC)
view_placeholder = placeholderVC.view
let placeholderVC = EmptyFeedViewController(nibName: "EmptyFeedViewController",
                                             bundle: nil)