在UIViewController中创建新的UIView

时间:2015-12-08 08:29:32

标签: swift uiview uiviewcontroller

我有一个ViewController,用于加载UIView(TempView)作为子视图。

tempView = TempView(frame: CGRectMake(10, 10, view.frame.size.width, view.frame.size.height))
tempView.tempLabelText = "YAY"
view.addSubview(tempView)

tempView有一个变量和一个@IBOutlet

var tempLabelText : String?
@IBOutlet weak var tempLabel: UILabel!

我在print(tempLabelText)课程的awakeFromNib()内添加了一条声明TempView及其打印nil

我希望能够从tempLabelText将值更改为ViewController,所以当我添加子视图时,标签会显示我声明的内容。我错过了什么?

我项目中的文件:

1. ViewController - 创建tempView:TempView!

2. TempView.swift - UIView类

3. tempView.xib - .xib内有一个标签。连接到TempView.swift的标签出口。

2 个答案:

答案 0 :(得分:0)

在此处初始化视图时会调用

awakeFromNib()方法:

tempView = TempView(frame: CGRectMake(10, 10, view.frame.size.width, view.frame.size.height))

此时变量tempLabelText尚未初始化。您只在下一行为此变量赋值。

答案 1 :(得分:0)

初始化视图时会调用awakeFromNib方法。在设置它的属性之前会调用它。