问题的背景:何时访问UIViewController生命周期中的子视图属性?
我想通过将三个UIViews放置在故事板最顶层的视图控制器中来学习如何在Xcode 6中使用故事板。其中一个UIView是蓝色的,一个是红色的,另一个是黄色的。我正在尝试查看是否可以通过更改其中一个UIViews的背景色来以编程方式更改UIView。通过命令+单击UIViewController类并查看适当的重写函数,我确定“viewDidAppear”是UIViewController在其设置代码中调用的最终函数。
问题:
这里是我的功能覆盖:
override func viewDidAppear(animated: Bool) {
self.bottomView!.backgroundColor = UIColor.blackColor()
super.viewDidAppear(animated)
}
然而,当我运行该代码与三个UIViews画面出现的一瞬间,没有黑色的UIView,然后继续用
"fatal error: unexpectedly found nil while unwrapping an Optional value"
问题崩溃:
为了能够以编程方式更改UIView的属性,我必须重写什么函数?这样做的最佳做法是什么?
编辑:
我使用故事板使我的三个的UIView的在我的UIViewController类的开始,因为这样宣称:
@IBOutlet var topLeftView: UIView?
@IBOutlet var topRightView: UIView?
@IBOutlet var bottomView: UIView?
看来,当viewDidLoad中得不到任何的意见,实际上是初始化因为下面这行代码的结果是
println("\(bottomView?)")
是“无”。这是怎么没有得到初始化?
我编辑了我的初始帖子以回应您的建议。 – almel